diff --git a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpResourceTests.cs b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpResourceTests.cs new file mode 100644 index 000000000..0bd09af05 --- /dev/null +++ b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpResourceTests.cs @@ -0,0 +1,51 @@ +// +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +using OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation; +using OpenTelemetry.Resources; +using Xunit; + +namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests +{ + public class OtlpResourceTests + { + [Theory] + [InlineData(true)] + [InlineData(false)] + public void ToOtlpResourceTest(bool includeServiceNameInResource) + { + // Targeted test to cover OTel Resource to OTLP Resource + // conversion, independent of signals. + var resourceBuilder = ResourceBuilder.CreateEmpty(); + if (includeServiceNameInResource) + { + resourceBuilder.AddService("service-name", "ns1"); + } + + var resource = resourceBuilder.Build(); + var otlpResource = resource.ToOtlpResource(); + if (includeServiceNameInResource) + { + Assert.Contains(otlpResource.Attributes, (kvp) => kvp.Key == ResourceSemanticConventions.AttributeServiceName && kvp.Value.StringValue == "service-name"); + Assert.Contains(otlpResource.Attributes, (kvp) => kvp.Key == ResourceSemanticConventions.AttributeServiceNamespace && kvp.Value.StringValue == "ns1"); + } + else + { + Assert.Contains(otlpResource.Attributes, (kvp) => kvp.Key == ResourceSemanticConventions.AttributeServiceName && kvp.Value.ToString().Contains("unknown_service:")); + } + } + } +} diff --git a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpTraceExporterTests.cs b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpTraceExporterTests.cs index 85cc11830..33062c9c9 100644 --- a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpTraceExporterTests.cs +++ b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpTraceExporterTests.cs @@ -137,12 +137,7 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests var resourceBuilder = ResourceBuilder.CreateEmpty(); if (includeServiceNameInResource) { - resourceBuilder.AddAttributes( - new List> - { - new KeyValuePair(ResourceSemanticConventions.AttributeServiceName, "service-name"), - new KeyValuePair(ResourceSemanticConventions.AttributeServiceNamespace, "ns1"), - }); + resourceBuilder.AddService("service-name", "ns1"); } var builder = Sdk.CreateTracerProviderBuilder() @@ -164,7 +159,6 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests var activityTags = isEven ? evenTags : oddTags; using Activity activity = source.StartActivity($"span-{i}", activityKind, parentContext: default, activityTags); - processor.OnEnd(activity); } processor.Shutdown();