2424import io .opentelemetry .api .trace .StatusCode ;
2525import io .opentelemetry .sdk .trace .data .SpanData ;
2626import io .opentelemetry .sdk .trace .data .StatusData ;
27- import java .util .Objects ;
2827import org .hamcrest .Description ;
28+ import org .hamcrest .FeatureMatcher ;
2929import org .hamcrest .Matcher ;
3030import 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