Skip to content

Commit 3369be3

Browse files
committed
Added test for merging raw attributes
1 parent cb74286 commit 3369be3

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

sdk/common/src/test/java/io/opentelemetry/sdk/resources/internal/EntityUtilTest.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
99
import static org.assertj.core.api.Assertions.assertThat;
1010

11+
import io.opentelemetry.api.common.Attributes;
1112
import java.util.Arrays;
1213
import java.util.Collection;
1314
import java.util.Collections;
@@ -212,4 +213,37 @@ void testSchemaUrlMerge_entities_different_url() {
212213
"one");
213214
assertThat(result).isEqualTo(null);
214215
}
216+
217+
@Test
218+
void testRawAttributeMerge_no_entities() {
219+
// When no entities are present all attributes are merged.
220+
RawAttributeMergeResult result =
221+
EntityUtil.mergeRawAttributes(
222+
Attributes.builder().put("a", 1).put("b", 1).build(),
223+
Attributes.builder().put("b", 2).put("c", 2).build(),
224+
Collections.emptyList());
225+
assertThat(result.getConflicts()).isEmpty();
226+
assertThat(result.getAttributes())
227+
.hasSize(3)
228+
.containsEntry("a", 1)
229+
.containsEntry("b", 2)
230+
.containsEntry("c", 2);
231+
}
232+
233+
@Test
234+
void testRawAttributeMerge_entity_with_conflict() {
235+
// When an entity conflicts with incoming raw attributes, we need to call out that conflict
236+
// so resource merge logic can remove the entity from resource.
237+
RawAttributeMergeResult result =
238+
EntityUtil.mergeRawAttributes(
239+
Attributes.builder().put("a", 1).put("b", 1).build(),
240+
Attributes.builder().put("b", 2).put("c", 2).build(),
241+
Arrays.asList(Entity.builder("c").withId(id -> id.put("c", 1)).build()));
242+
assertThat(result.getConflicts()).satisfiesExactly(e -> assertThat(e).hasType("c"));
243+
assertThat(result.getAttributes())
244+
.hasSize(3)
245+
.containsEntry("a", 1)
246+
.containsEntry("b", 2)
247+
.containsEntry("c", 2);
248+
}
215249
}

0 commit comments

Comments
 (0)