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();