Skip to content

Commit d80aa4f

Browse files
committed
refactor test assertion approach
1 parent b28a8e0 commit d80aa4f

File tree

1 file changed

+99
-39
lines changed

1 file changed

+99
-39
lines changed

instrumentation-docs/src/test/java/io/opentelemetry/instrumentation/docs/ManualTelemetryTest.java

Lines changed: 99 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
import com.fasterxml.jackson.core.JsonProcessingException;
1111
import io.opentelemetry.instrumentation.docs.internal.InstrumentationMetadata;
1212
import io.opentelemetry.instrumentation.docs.internal.ManualTelemetryEntry;
13+
import io.opentelemetry.instrumentation.docs.internal.SemanticConvention;
14+
import io.opentelemetry.instrumentation.docs.internal.TelemetryAttribute;
1315
import io.opentelemetry.instrumentation.docs.utils.YamlHelper;
16+
import java.util.List;
1417
import org.junit.jupiter.api.Test;
1518

1619
class ManualTelemetryTest {
@@ -51,36 +54,45 @@ void testManualTelemetryParsing() throws JsonProcessingException {
5154
type: STRING
5255
""";
5356

54-
InstrumentationMetadata metadata = YamlHelper.metaDataParser(yamlContent);
55-
56-
assertThat(metadata).isNotNull();
57-
assertThat(metadata.getDescription())
58-
.isEqualTo("Example instrumentation with manual telemetry documentation");
59-
assertThat(metadata.getLibraryLink()).isEqualTo("https://example.com/library");
60-
assertThat(metadata.getOverrideTelemetry()).isFalse();
61-
62-
assertThat(metadata.getAdditionalTelemetry()).hasSize(2);
63-
64-
ManualTelemetryEntry defaultEntry = metadata.getAdditionalTelemetry().get(0);
65-
assertThat(defaultEntry.getWhen()).isEqualTo("default");
66-
assertThat(defaultEntry.getMetrics()).hasSize(1);
67-
assertThat(defaultEntry.getSpans()).hasSize(1);
68-
69-
ManualTelemetryEntry.ManualMetric metric = defaultEntry.getMetrics().get(0);
70-
assertThat(metric.getName()).isEqualTo("system.disk.io");
71-
assertThat(metric.getDescription()).isEqualTo("System disk IO");
72-
assertThat(metric.getType()).isEqualTo("LONG_SUM");
73-
assertThat(metric.getUnit()).isEqualTo("By");
74-
assertThat(metric.getAttributes()).hasSize(2);
75-
76-
ManualTelemetryEntry.ManualSpan span = defaultEntry.getSpans().get(0);
77-
assertThat(span.getSpanKind()).isEqualTo("CLIENT");
78-
assertThat(span.getAttributes()).hasSize(1);
79-
80-
ManualTelemetryEntry experimentalEntry = metadata.getAdditionalTelemetry().get(1);
81-
assertThat(experimentalEntry.getWhen()).isEqualTo("experimental");
82-
assertThat(experimentalEntry.getMetrics()).hasSize(1);
83-
assertThat(experimentalEntry.getSpans()).isEmpty();
57+
InstrumentationMetadata actualMetadata = YamlHelper.metaDataParser(yamlContent);
58+
ManualTelemetryEntry defaultEntry =
59+
new ManualTelemetryEntry(
60+
"default",
61+
List.of(
62+
new ManualTelemetryEntry.ManualMetric(
63+
"system.disk.io",
64+
"System disk IO",
65+
"LONG_SUM",
66+
"By",
67+
List.of(
68+
new TelemetryAttribute("device", "STRING"),
69+
new TelemetryAttribute("direction", "STRING")))),
70+
List.of(
71+
new ManualTelemetryEntry.ManualSpan(
72+
"CLIENT", List.of(new TelemetryAttribute("custom.operation", "STRING")))));
73+
74+
ManualTelemetryEntry experimentalEntry =
75+
new ManualTelemetryEntry(
76+
"experimental",
77+
List.of(
78+
new ManualTelemetryEntry.ManualMetric(
79+
"experimental.feature.usage",
80+
"Usage of experimental features",
81+
"HISTOGRAM",
82+
"s",
83+
List.of(new TelemetryAttribute("feature.name", "STRING")))),
84+
List.of());
85+
86+
InstrumentationMetadata expectedMetadata =
87+
new InstrumentationMetadata.Builder()
88+
.description("Example instrumentation with manual telemetry documentation")
89+
.libraryLink("https://example.com/library")
90+
.semanticConventions(List.of(SemanticConvention.HTTP_CLIENT_SPANS))
91+
.additionalTelemetry(List.of(defaultEntry, experimentalEntry))
92+
.overrideTelemetry(false)
93+
.build();
94+
95+
assertThat(actualMetadata).usingRecursiveComparison().isEqualTo(expectedMetadata);
8496
}
8597

8698
@Test
@@ -99,11 +111,24 @@ void testOverrideTelemetryFlag() throws JsonProcessingException {
99111
attributes: []
100112
""";
101113

102-
InstrumentationMetadata metadata = YamlHelper.metaDataParser(yamlContent);
114+
InstrumentationMetadata actualMetadata = YamlHelper.metaDataParser(yamlContent);
115+
116+
ManualTelemetryEntry defaultEntry =
117+
new ManualTelemetryEntry(
118+
"default",
119+
List.of(
120+
new ManualTelemetryEntry.ManualMetric(
121+
"manual.metric", "Manual metric only", "COUNTER", "1", List.of())),
122+
List.of());
103123

104-
assertThat(metadata).isNotNull();
105-
assertThat(metadata.getOverrideTelemetry()).isTrue();
106-
assertThat(metadata.getAdditionalTelemetry()).hasSize(1);
124+
InstrumentationMetadata expectedMetadata =
125+
new InstrumentationMetadata.Builder()
126+
.description("Example with override")
127+
.overrideTelemetry(true)
128+
.additionalTelemetry(List.of(defaultEntry))
129+
.build();
130+
131+
assertThat(actualMetadata).usingRecursiveComparison().isEqualTo(expectedMetadata);
107132
}
108133

109134
@Test
@@ -115,10 +140,45 @@ void testEmptyAdditionalTelemetry() throws JsonProcessingException {
115140
- HTTP_CLIENT_SPANS
116141
""";
117142

118-
InstrumentationMetadata metadata = YamlHelper.metaDataParser(yamlContent);
119-
120-
assertThat(metadata).isNotNull();
121-
assertThat(metadata.getOverrideTelemetry()).isFalse();
122-
assertThat(metadata.getAdditionalTelemetry()).isEmpty();
143+
InstrumentationMetadata actualMetadata = YamlHelper.metaDataParser(yamlContent);
144+
145+
ManualTelemetryEntry defaultEntry =
146+
new ManualTelemetryEntry(
147+
"default",
148+
List.of(
149+
new ManualTelemetryEntry.ManualMetric(
150+
"system.disk.io",
151+
"System disk IO",
152+
"LONG_SUM",
153+
"By",
154+
List.of(
155+
new TelemetryAttribute("device", "STRING"),
156+
new TelemetryAttribute("direction", "STRING")))),
157+
List.of(
158+
new ManualTelemetryEntry.ManualSpan(
159+
"CLIENT", List.of(new TelemetryAttribute("custom.operation", "STRING")))));
160+
161+
ManualTelemetryEntry experimentalEntry =
162+
new ManualTelemetryEntry(
163+
"experimental",
164+
List.of(
165+
new ManualTelemetryEntry.ManualMetric(
166+
"experimental.feature.usage",
167+
"Usage of experimental features",
168+
"HISTOGRAM",
169+
"s",
170+
List.of(new TelemetryAttribute("feature.name", "STRING")))),
171+
List.of());
172+
173+
InstrumentationMetadata expectedMetadata =
174+
new InstrumentationMetadata.Builder()
175+
.description("Example instrumentation with manual telemetry documentation")
176+
.libraryLink("https://example.com/library")
177+
.semanticConventions(List.of(SemanticConvention.HTTP_CLIENT_SPANS))
178+
.additionalTelemetry(List.of(defaultEntry, experimentalEntry))
179+
.overrideTelemetry(false)
180+
.build();
181+
182+
assertThat(actualMetadata).usingRecursiveComparison().isEqualTo(expectedMetadata);
123183
}
124184
}

0 commit comments

Comments
 (0)