From 0da1f45367d71fa750ccb25c432a02b55f59103c Mon Sep 17 00:00:00 2001 From: Amanda Tarafa Mas Date: Tue, 16 Mar 2021 15:48:53 +0000 Subject: [PATCH] test: Adds more unit tests for trace correlation --- .../GoogleStackdriverTargetTest.cs | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/apis/Google.Cloud.Logging.NLog/Google.Cloud.Logging.NLog.Tests/GoogleStackdriverTargetTest.cs b/apis/Google.Cloud.Logging.NLog/Google.Cloud.Logging.NLog.Tests/GoogleStackdriverTargetTest.cs index 3f1ba4cc768f..402c30a01ef5 100644 --- a/apis/Google.Cloud.Logging.NLog/Google.Cloud.Logging.NLog.Tests/GoogleStackdriverTargetTest.cs +++ b/apis/Google.Cloud.Logging.NLog/Google.Cloud.Logging.NLog.Tests/GoogleStackdriverTargetTest.cs @@ -27,6 +27,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; @@ -289,9 +290,9 @@ public async Task SingleLogEntryWithTraceId() { googleTarget.SpanId = "${event-properties:SpanId:Format=x16}"; googleTarget.TraceId = "${activityid}"; - googleTarget.TraceSampled = "TRUE"; - System.Diagnostics.Trace.CorrelationManager.ActivityId = guidTraceId; - LogManager.GetLogger("testlogger").Info("Hello {SpanId}", 74); + googleTarget.TraceSampled = "${event-properties:Sampled}"; + Trace.CorrelationManager.ActivityId = guidTraceId; + LogManager.GetLogger("testlogger").Info("Hello {SpanId}. You are being {Sampled}", 74, true); return Task.FromResult(0); }); Assert.Single(uploadedEntries); @@ -300,6 +301,35 @@ public async Task SingleLogEntryWithTraceId() Assert.True(uploadedEntries[0].TraceSampled); } + [Theory] + [InlineData(true, true)] + [InlineData("true", true)] + [InlineData("TruE", true)] + [InlineData(1, true)] // This is useful when reading directly from X-Cloud-Trace-Context header. + [InlineData("1", true)] + [InlineData(false, false)] + [InlineData("false", false)] + [InlineData("fALse", false)] + [InlineData(0, false)] + [InlineData(5, false)] + [InlineData("something", false)] + public async Task TraceSampledValues(object sampled, bool expectedSampled) + { + var guidTraceId = Guid.NewGuid(); + + var uploadedEntries = await RunTestWorkingServer( + googleTarget => + { + googleTarget.TraceId = "${event-properties:TraceId}"; + googleTarget.TraceSampled = "${event-properties:Sampled}"; + LogManager.GetLogger("testlogger").Info("Hello {TraceId}. You are being {Sampled}", guidTraceId, sampled); + return Task.FromResult(0); + }); + Assert.Single(uploadedEntries); + Assert.Equal($"projects/projectId/traces/{guidTraceId}", uploadedEntries[0].Trace); + Assert.Equal(expectedSampled, uploadedEntries[0].TraceSampled); + } + [Fact] public async Task SingleLogEntryWithLocation() {