diff options
| author | Yang Song <songy23@users.noreply.github.com> | 2018-06-13 16:17:04 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-06-13 16:17:04 -0700 |
| commit | 75a5135391e0e704db08e2291ad916ba4aeb7749 (patch) | |
| tree | 35d61083267737c2aa51163e80e82c8c420995e0 /exporters | |
| parent | c788d4ee4774743cc6c5836d040672e4105eefea (diff) | |
| download | platform_external_opencensus-java-75a5135391e0e704db08e2291ad916ba4aeb7749.tar.gz platform_external_opencensus-java-75a5135391e0e704db08e2291ad916ba4aeb7749.tar.bz2 platform_external_opencensus-java-75a5135391e0e704db08e2291ad916ba4aeb7749.zip | |
Stackdriver Trace Exporter: improve unit tests on resource labels. (#1254)
* Stackdriver Trace Exporter: improve unit tests on resource labels.
* Have separate tests for getResourceLabels and generateSpan.
* Add missing Javadoc for unit tests.
* Make a helper method static.
Diffstat (limited to 'exporters')
3 files changed, 33 insertions, 12 deletions
diff --git a/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java b/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java index 0993fd80..46a18a59 100644 --- a/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java +++ b/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java @@ -257,8 +257,8 @@ final class StackdriverV2ExporterHandler extends SpanExporter.Handler { return attributesBuilder; } - // TODO(songya): make constructor of MonitoredResource public, and add unit tests for this method. - private static Map<String, AttributeValue> getResourceLabels( + @VisibleForTesting + static Map<String, AttributeValue> getResourceLabels( @javax.annotation.Nullable MonitoredResource resource) { if (resource == null) { return Collections.emptyMap(); diff --git a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java index 36cacd6b..32458597 100644 --- a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java +++ b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java @@ -32,6 +32,7 @@ import org.junit.runners.JUnit4; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +/** Unit tests for exporting in {@link StackdriverV2ExporterHandler}. */ @RunWith(JUnit4.class) public final class StackdriverV2ExporterHandlerExportTest { private static final String PROJECT_ID = "PROJECT_ID"; diff --git a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java index 6674dd91..bb0ba072 100644 --- a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java +++ b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java @@ -36,6 +36,10 @@ import com.google.devtools.cloudtrace.v2.StackTrace; import com.google.devtools.cloudtrace.v2.TruncatableString; import com.google.protobuf.Int32Value; import io.opencensus.common.Timestamp; +import io.opencensus.contrib.monitoredresource.util.MonitoredResource; +import io.opencensus.contrib.monitoredresource.util.MonitoredResource.AwsEc2InstanceMonitoredResource; +import io.opencensus.contrib.monitoredresource.util.MonitoredResource.GcpGceInstanceMonitoredResource; +import io.opencensus.contrib.monitoredresource.util.MonitoredResource.GcpGkeContainerMonitoredResource; import io.opencensus.trace.Annotation; import io.opencensus.trace.Link; import io.opencensus.trace.Span.Kind; @@ -58,6 +62,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; +/** Unit tests for proto conversions in {@link StackdriverV2ExporterHandler}. */ @RunWith(JUnit4.class) public final class StackdriverV2ExporterHandlerProtoTest { @@ -126,6 +131,13 @@ public final class StackdriverV2ExporterHandlerProtoTest { TimedEvents.create(networkEventsList, DROPPED_NETWORKEVENTS_COUNT); private static final SpanData.Links links = SpanData.Links.create(linksList, DROPPED_LINKS_COUNT); private static final Map<String, AttributeValue> EMPTY_RESOURCE_LABELS = Collections.emptyMap(); + private static final AwsEc2InstanceMonitoredResource AWS_EC2_INSTANCE_MONITORED_RESOURCE = + AwsEc2InstanceMonitoredResource.create("my-project", "my-instance", "us-east-1"); + private static final GcpGceInstanceMonitoredResource GCP_GCE_INSTANCE_MONITORED_RESOURCE = + GcpGceInstanceMonitoredResource.create("my-project", "my-instance", "us-east1"); + private static final GcpGkeContainerMonitoredResource GCP_GKE_CONTAINER_MONITORED_RESOURCE = + GcpGkeContainerMonitoredResource.create( + "my-project", "cluster", "container", "namespace", "my-instance", "pod", "us-east1"); private static final ImmutableMap<String, AttributeValue> AWS_RESOURCE_LABELS = ImmutableMap.of( createResourceLabelKey(AWS_EC2_INSTANCE, "aws_account"), @@ -133,7 +145,7 @@ public final class StackdriverV2ExporterHandlerProtoTest { createResourceLabelKey(AWS_EC2_INSTANCE, "instance_id"), toStringAttributeValueProto("my-instance"), createResourceLabelKey(AWS_EC2_INSTANCE, "region"), - toStringAttributeValueProto("us-east-1")); + toStringAttributeValueProto("aws:us-east-1")); private static final ImmutableMap<String, AttributeValue> GCE_RESOURCE_LABELS = ImmutableMap.of( createResourceLabelKey(GCP_GCE_INSTANCE, "project_id"), @@ -306,21 +318,29 @@ public final class StackdriverV2ExporterHandlerProtoTest { } @Test - public void generateSpan_WithAwsEc2ResourceLabels() { - generateSpan_WithResourceLabels(AWS_RESOURCE_LABELS); + public void getResourceLabels_AwsEc2ResourceLabels() { + testGetResourceLabels(AWS_EC2_INSTANCE_MONITORED_RESOURCE, AWS_RESOURCE_LABELS); } @Test - public void generateSpan_WithGceResourceLabels() { - generateSpan_WithResourceLabels(GCE_RESOURCE_LABELS); + public void getResourceLabels_GceResourceLabels() { + testGetResourceLabels(GCP_GCE_INSTANCE_MONITORED_RESOURCE, GCE_RESOURCE_LABELS); } @Test - public void generateSpan_WithGkeResourceLabels() { - generateSpan_WithResourceLabels(GKE_RESOURCE_LABELS); + public void getResourceLabels_GkeResourceLabels() { + testGetResourceLabels(GCP_GKE_CONTAINER_MONITORED_RESOURCE, GKE_RESOURCE_LABELS); } - private void generateSpan_WithResourceLabels(Map<String, AttributeValue> resourceLabels) { + private static void testGetResourceLabels( + MonitoredResource resource, Map<String, AttributeValue> expectedLabels) { + Map<String, AttributeValue> actualLabels = + StackdriverV2ExporterHandler.getResourceLabels(resource); + assertThat(actualLabels).containsExactlyEntriesIn(expectedLabels); + } + + @Test + public void generateSpan_WithResourceLabels() { SpanData spanData = SpanData.create( spanContext, @@ -336,9 +356,9 @@ public final class StackdriverV2ExporterHandlerProtoTest { CHILD_SPAN_COUNT, status, endTimestamp); - Span span = handler.generateSpan(spanData, resourceLabels); + Span span = handler.generateSpan(spanData, AWS_RESOURCE_LABELS); Map<String, AttributeValue> attributeMap = span.getAttributes().getAttributeMapMap(); - assertThat(attributeMap.entrySet()).containsAllIn(resourceLabels.entrySet()); + assertThat(attributeMap.entrySet()).containsAllIn(AWS_RESOURCE_LABELS.entrySet()); } @Test |
