Skip to content

Commit b58e5bc

Browse files
committed
simplify some SpanData matchers using FeatureMatcher instead
1 parent 0cb3600 commit b58e5bc

1 file changed

Lines changed: 13 additions & 21 deletions

File tree

hbase-client/src/test/java/org/apache/hadoop/hbase/client/trace/hamcrest/SpanDataMatchers.java

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import io.opentelemetry.api.trace.StatusCode;
2525
import io.opentelemetry.sdk.trace.data.SpanData;
2626
import io.opentelemetry.sdk.trace.data.StatusData;
27-
import java.util.Objects;
2827
import org.hamcrest.Description;
28+
import org.hamcrest.FeatureMatcher;
2929
import org.hamcrest.Matcher;
3030
import org.hamcrest.TypeSafeMatcher;
3131

@@ -37,13 +37,11 @@ public final class SpanDataMatchers {
3737
private SpanDataMatchers() { }
3838

3939
public static Matcher<SpanData> hasAttributes(Matcher<Attributes> matcher) {
40-
return new TypeSafeMatcher<SpanData>() {
41-
@Override protected boolean matchesSafely(SpanData item) {
42-
final Attributes attributes = item.getAttributes();
43-
return attributes != null && matcher.matches(attributes);
44-
}
45-
@Override public void describeTo(Description description) {
46-
description.appendText("SpanData having ").appendDescriptionOf(matcher);
40+
return new FeatureMatcher<SpanData, Attributes>(
41+
matcher, "SpanData having attributes that ", "attributes"
42+
) {
43+
@Override protected Attributes featureValueOf(SpanData item) {
44+
return item.getAttributes();
4745
}
4846
};
4947
}
@@ -60,12 +58,10 @@ public static Matcher<SpanData> hasEnded() {
6058
}
6159

6260
public static Matcher<SpanData> hasKind(SpanKind kind) {
63-
return new TypeSafeMatcher<SpanData>() {
64-
@Override protected boolean matchesSafely(SpanData item) {
65-
return Objects.equals(item.getKind(), kind);
66-
}
67-
@Override public void describeTo(Description description) {
68-
description.appendText("SpanData with kind of ").appendValue(kind);
61+
return new FeatureMatcher<SpanData, SpanKind>(
62+
equalTo(kind), "SpanData with kind that", "SpanKind") {
63+
@Override protected SpanKind featureValueOf(SpanData item) {
64+
return item.getKind();
6965
}
7066
};
7167
}
@@ -75,13 +71,9 @@ public static Matcher<SpanData> hasName(String name) {
7571
}
7672

7773
public static Matcher<SpanData> hasName(Matcher<String> matcher) {
78-
return new TypeSafeMatcher<SpanData>() {
79-
@Override protected boolean matchesSafely(SpanData item) {
80-
final String name = item.getName();
81-
return name != null && matcher.matches(name);
82-
}
83-
@Override public void describeTo(Description description) {
84-
description.appendText("SpanData with a name that ").appendDescriptionOf(matcher);
74+
return new FeatureMatcher<SpanData, String>(matcher, "SpanKind with a name that", "name") {
75+
@Override protected String featureValueOf(SpanData item) {
76+
return item.getName();
8577
}
8678
};
8779
}

0 commit comments

Comments
 (0)