From dcc2e4420a27e798dfa972e23f2ef3ddd54f2510 Mon Sep 17 00:00:00 2001 From: Madalyn Redding Date: Fri, 13 Oct 2023 15:29:46 -0400 Subject: [PATCH 1/2] new tests --- .../tests/ClientDiagnosticsTests.Net50.cs | 122 ++++++++---------- 1 file changed, 56 insertions(+), 66 deletions(-) diff --git a/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs b/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs index 1302620cc01c..6737e037c523 100644 --- a/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs +++ b/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs @@ -30,6 +30,22 @@ private static TestAppContextSwitch SetAppConfigSwitch() return s; } + [Test] + [NonParallelizable] + public void StartsActivityNoOpsWithoutSwitchWithListener() + { + using var activityListener = new TestActivitySourceListener("Azure.Clients.ClientName"); + DiagnosticScopeFactory clientDiagnostics = new DiagnosticScopeFactory("Azure.Clients", "Microsoft.Azure.Core.Cool.Tests", true, false); + DiagnosticScope scope = clientDiagnostics.CreateScope("ClientName.ActivityName"); + + Assert.IsFalse(scope.IsEnabled); + + scope.Start(); + scope.Dispose(); + + Assert.AreEqual(0, activityListener.Activities.Count); + } + [Test] [NonParallelizable] public void StartActivityNoOpsWithoutSwitch() @@ -52,62 +68,49 @@ public void StartsActivitySourceActivity() { using var _ = SetAppConfigSwitch(); - // Bug: there is no way to set activity type to W3C - // https://github.com/dotnet/runtime/issues/43853 - var oldDefault = Activity.DefaultIdFormat; - - Activity.DefaultIdFormat = ActivityIdFormat.W3C; - - try - { - using var activityListener = new TestActivitySourceListener("Azure.Clients.ClientName"); + using var activityListener = new TestActivitySourceListener("Azure.Clients.ClientName"); - DiagnosticScopeFactory clientDiagnostics = new DiagnosticScopeFactory("Azure.Clients", "Microsoft.Azure.Core.Cool.Tests", true, false); + DiagnosticScopeFactory clientDiagnostics = new DiagnosticScopeFactory("Azure.Clients", "Microsoft.Azure.Core.Cool.Tests", true, false); - DiagnosticScope scope = clientDiagnostics.CreateScope("ClientName.ActivityName"); + DiagnosticScope scope = clientDiagnostics.CreateScope("ClientName.ActivityName"); - scope.SetDisplayName("custom display name"); + scope.SetDisplayName("custom display name"); - scope.AddAttribute("Attribute1", "Value1"); - scope.AddAttribute("Attribute2", 2, i => i.ToString()); - scope.AddAttribute("Attribute3", 3); + scope.AddAttribute("Attribute1", "Value1"); + scope.AddAttribute("Attribute2", 2, i => i.ToString()); + scope.AddAttribute("Attribute3", 3); - scope.AddLink("00-6e76af18746bae4eadc3581338bbe8b1-2899ebfdbdce904b-00", "foo=bar"); - scope.AddLink("00-6e76af18746bae4eadc3581338bbe8b2-2899ebfdbdce904b-00", null, new Dictionary() - { - {"linkAttribute", "linkAttributeValue"} - }); + scope.AddLink("00-6e76af18746bae4eadc3581338bbe8b1-2899ebfdbdce904b-00", "foo=bar"); + scope.AddLink("00-6e76af18746bae4eadc3581338bbe8b2-2899ebfdbdce904b-00", null, new Dictionary() + { + {"linkAttribute", "linkAttributeValue"} + }); - Assert.IsTrue(scope.IsEnabled); + Assert.IsTrue(scope.IsEnabled); - scope.Start(); + scope.Start(); - // Validate that the default activity kind is used - Assert.AreEqual(ActivityKind.Internal, Activity.Current.Kind); - Assert.AreEqual("custom display name", Activity.Current.DisplayName); + // Validate that the default activity kind is used + Assert.AreEqual(ActivityKind.Internal, Activity.Current.Kind); + Assert.AreEqual("custom display name", Activity.Current.DisplayName); - scope.Dispose(); + scope.Dispose(); - Assert.AreEqual(1, activityListener.Activities.Count); - var activity = activityListener.Activities.Dequeue(); + Assert.AreEqual(1, activityListener.Activities.Count); + var activity = activityListener.Activities.Dequeue(); - Assert.AreEqual("Value1", activity.TagObjects.Single(o => o.Key == "Attribute1").Value); - Assert.AreEqual("2", activity.TagObjects.Single(o => o.Key == "Attribute2").Value); - Assert.AreEqual("3", activity.TagObjects.Single(o => o.Key == "Attribute3").Value); + Assert.AreEqual("Value1", activity.TagObjects.Single(o => o.Key == "Attribute1").Value); + Assert.AreEqual("2", activity.TagObjects.Single(o => o.Key == "Attribute2").Value); + Assert.AreEqual("3", activity.TagObjects.Single(o => o.Key == "Attribute3").Value); - var links = activity.Links.ToArray(); - Assert.AreEqual(2, links.Length); - Assert.AreEqual(ActivityContext.Parse("00-6e76af18746bae4eadc3581338bbe8b1-2899ebfdbdce904b-00", "foo=bar"), links[0].Context); - Assert.AreEqual(ActivityContext.Parse("00-6e76af18746bae4eadc3581338bbe8b2-2899ebfdbdce904b-00", null), links[1].Context); + var links = activity.Links.ToArray(); + Assert.AreEqual(2, links.Length); + Assert.AreEqual(ActivityContext.Parse("00-6e76af18746bae4eadc3581338bbe8b1-2899ebfdbdce904b-00", "foo=bar"), links[0].Context); + Assert.AreEqual(ActivityContext.Parse("00-6e76af18746bae4eadc3581338bbe8b2-2899ebfdbdce904b-00", null), links[1].Context); - Assert.AreEqual(ActivityIdFormat.W3C, activity.IdFormat); + Assert.AreEqual(ActivityIdFormat.W3C, activity.IdFormat); - CollectionAssert.Contains(activity.Tags, new KeyValuePair(DiagnosticScope.OpenTelemetrySchemaAttribute, DiagnosticScope.OpenTelemetrySchemaVersion)); - } - finally - { - Activity.DefaultIdFormat = oldDefault; - } + CollectionAssert.Contains(activity.Tags, new KeyValuePair(DiagnosticScope.OpenTelemetrySchemaAttribute, DiagnosticScope.OpenTelemetrySchemaVersion)); } [Test] @@ -116,34 +119,21 @@ public void StartsActivityShortNameSourceActivity() { using var _ = SetAppConfigSwitch(); - // Bug: there is no way to set activity type to W3C - // https://github.com/dotnet/runtime/issues/43853 - var oldDefault = Activity.DefaultIdFormat; - - Activity.DefaultIdFormat = ActivityIdFormat.W3C; - - try - { - using var activityListener = new TestActivitySourceListener("Azure.Clients.ClientName"); + using var activityListener = new TestActivitySourceListener("Azure.Clients.ClientName"); - DiagnosticScopeFactory clientDiagnostics = new DiagnosticScopeFactory("Azure.Clients.ClientName", "Microsoft.Azure.Core.Cool.Tests", true, false); + DiagnosticScopeFactory clientDiagnostics = new DiagnosticScopeFactory("Azure.Clients.ClientName", "Microsoft.Azure.Core.Cool.Tests", true, false); - DiagnosticScope scope = clientDiagnostics.CreateScope("ActivityName"); - Assert.IsTrue(scope.IsEnabled); + DiagnosticScope scope = clientDiagnostics.CreateScope("ActivityName"); + Assert.IsTrue(scope.IsEnabled); - scope.Start(); - scope.Dispose(); + scope.Start(); + scope.Dispose(); - Assert.AreEqual(1, activityListener.Activities.Count); - var activity = activityListener.Activities.Dequeue(); + Assert.AreEqual(1, activityListener.Activities.Count); + var activity = activityListener.Activities.Dequeue(); - Assert.AreEqual("ActivityName", activity.DisplayName); - CollectionAssert.Contains(activity.Tags, new KeyValuePair(DiagnosticScope.OpenTelemetrySchemaAttribute, DiagnosticScope.OpenTelemetrySchemaVersion)); - } - finally - { - Activity.DefaultIdFormat = oldDefault; - } + Assert.AreEqual("ActivityName", activity.DisplayName); + CollectionAssert.Contains(activity.Tags, new KeyValuePair(DiagnosticScope.OpenTelemetrySchemaAttribute, DiagnosticScope.OpenTelemetrySchemaVersion)); } [TestCase(null)] @@ -343,7 +333,7 @@ public void CanSetActivitySourceAndDiagnosticSourceActivitiesTogether() Assert.AreEqual("ClientName.ActivityName.Start", startEvent.Key); Assert.AreEqual("ClientName.ActivityName.Stop", stopEvent.Key); - var diagnosticSourceActivity = (Activity) startEvent.Value; + var diagnosticSourceActivity = (Activity)startEvent.Value; Assert.AreEqual(ActivityIdFormat.W3C, diagnosticSourceActivity.IdFormat); CollectionAssert.Contains(diagnosticSourceActivity.Tags, new KeyValuePair("Attribute1", "Value1")); CollectionAssert.Contains(diagnosticSourceActivity.Tags, new KeyValuePair("Attribute2", "2")); From cdfe52bde749418907e6445e4000732e7c716610 Mon Sep 17 00:00:00 2001 From: Madalyn Redding Date: Fri, 13 Oct 2023 15:39:59 -0400 Subject: [PATCH 2/2] formatting --- sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs b/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs index 6737e037c523..2d537e3cb1d7 100644 --- a/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs +++ b/sdk/core/Azure.Core/tests/ClientDiagnosticsTests.Net50.cs @@ -333,7 +333,7 @@ public void CanSetActivitySourceAndDiagnosticSourceActivitiesTogether() Assert.AreEqual("ClientName.ActivityName.Start", startEvent.Key); Assert.AreEqual("ClientName.ActivityName.Stop", stopEvent.Key); - var diagnosticSourceActivity = (Activity)startEvent.Value; + var diagnosticSourceActivity = (Activity) startEvent.Value; Assert.AreEqual(ActivityIdFormat.W3C, diagnosticSourceActivity.IdFormat); CollectionAssert.Contains(diagnosticSourceActivity.Tags, new KeyValuePair("Attribute1", "Value1")); CollectionAssert.Contains(diagnosticSourceActivity.Tags, new KeyValuePair("Attribute2", "2"));