88import static io .opentelemetry .sdk .testing .assertj .OpenTelemetryAssertions .assertThat ;
99import static org .assertj .core .api .Assertions .assertThat ;
1010
11+ import io .opentelemetry .api .common .Attributes ;
1112import io .opentelemetry .sdk .resources .internal .EntityUtil ;
1213import org .junit .jupiter .api .Test ;
1314
@@ -29,4 +30,97 @@ void defaults_includeServiceAndSdk() {
2930 .satisfiesExactlyInAnyOrder (
3031 e -> assertThat (e ).hasType ("service" ), e -> assertThat (e ).hasType ("telemetry.sdk" ));
3132 }
33+
34+ @ Test
35+ void Resource_updatesDescription () {
36+ SdkResourceProvider provider = SdkResourceProvider .builder ().includeDefaults (false ).build ();
37+
38+ provider
39+ .getResource ()
40+ .attachEntity ("one" )
41+ .setSchemaUrl ("one" )
42+ .withId (Attributes .builder ().put ("one.id" , 1 ).build ())
43+ .emit ();
44+
45+ provider
46+ .getResource ()
47+ .attachEntity ("one" )
48+ .setSchemaUrl ("one" )
49+ .withId (Attributes .builder ().put ("one.id" , 1 ).build ())
50+ .withDescription (Attributes .builder ().put ("one.desc" , "desc" ).build ())
51+ .emit ();
52+
53+ assertThat (provider .getSdkResource ().getAttributes ())
54+ .hasSize (2 )
55+ .containsKey ("one.id" )
56+ .containsKey ("one.desc" );
57+ }
58+
59+ @ Test
60+ void Resource_ignoresNewIds () {
61+ SdkResourceProvider provider = SdkResourceProvider .builder ().includeDefaults (false ).build ();
62+
63+ provider
64+ .getResource ()
65+ .attachEntity ("one" )
66+ .setSchemaUrl ("one" )
67+ .withId (Attributes .builder ().put ("one.id" , 1 ).build ())
68+ .emit ();
69+
70+ provider
71+ .getResource ()
72+ .attachEntity ("one" )
73+ .setSchemaUrl ("one" )
74+ .withId (Attributes .builder ().put ("one.id" , 2 ).build ())
75+ .withDescription (Attributes .builder ().put ("one.desc" , "desc" ).build ())
76+ .emit ();
77+
78+ assertThat (provider .getSdkResource ().getAttributes ()).hasSize (1 ).containsKey ("one.id" );
79+ }
80+
81+ @ Test
82+ void Resource_ignoresNewSchemaUrl () {
83+ SdkResourceProvider provider = SdkResourceProvider .builder ().includeDefaults (false ).build ();
84+
85+ provider
86+ .getResource ()
87+ .attachEntity ("one" )
88+ .setSchemaUrl ("one" )
89+ .withId (Attributes .builder ().put ("one.id" , 1 ).build ())
90+ .emit ();
91+
92+ provider
93+ .getResource ()
94+ .attachEntity ("one" )
95+ .setSchemaUrl ("two" )
96+ .withId (Attributes .builder ().put ("one.id" , 1 ).build ())
97+ .withDescription (Attributes .builder ().put ("one.desc" , "desc" ).build ())
98+ .emit ();
99+
100+ assertThat (provider .getSdkResource ().getAttributes ()).hasSize (1 ).containsKey ("one.id" );
101+ }
102+
103+ @ Test
104+ void Resource_addsNewEntity () {
105+ SdkResourceProvider provider = SdkResourceProvider .builder ().includeDefaults (false ).build ();
106+
107+ provider
108+ .getResource ()
109+ .attachEntity ("one" )
110+ .setSchemaUrl ("one" )
111+ .withId (Attributes .builder ().put ("one.id" , 1 ).build ())
112+ .emit ();
113+
114+ provider
115+ .getResource ()
116+ .attachEntity ("two" )
117+ .setSchemaUrl ("two" )
118+ .withId (Attributes .builder ().put ("two.id" , 2 ).build ())
119+ .emit ();
120+
121+ assertThat (provider .getSdkResource ().getAttributes ())
122+ .hasSize (2 )
123+ .containsKey ("one.id" )
124+ .containsKey ("two.id" );
125+ }
32126}
0 commit comments