public void LogSqlDependency_WithSqlDependency_CreatesSqlDependencyTelemetry() { // Arrange var spySink = new InMemoryLogSink(); string operationId = $"operation-id-{Guid.NewGuid()}"; ILogger logger = CreateLogger(spySink, config => config.Enrich.WithProperty(ContextProperties.Correlation.OperationId, operationId)); var startTime = DateTimeOffset.UtcNow; var duration = TimeSpan.FromSeconds(5); var telemetryContext = new Dictionary <string, object> { ["Statement"] = "Query" }; logger.LogSqlDependency("Server", "Database", "Users", "GET", isSuccessful: true, startTime: startTime, duration: duration, telemetryContext); LogEvent logEvent = Assert.Single(spySink.CurrentLogEmits); Assert.NotNull(logEvent); var converter = ApplicationInsightsTelemetryConverter.Create(); // Act IEnumerable <ITelemetry> telemetries = converter.Convert(logEvent, formatProvider: null); // Assert AssertDoesNotContainLogProperty(logEvent, DependencyTracking.DependencyLogEntry); Assert.Collection(telemetries, telemetry => { var dependencyTelemetry = Assert.IsType <DependencyTelemetry>(telemetry); Assert.Equal(DependencyType.Sql.ToString(), dependencyTelemetry.Type); Assert.Equal("Server", dependencyTelemetry.Target); Assert.Equal("Database/Users", dependencyTelemetry.Name); Assert.Equal("GET", dependencyTelemetry.Data); Assert.Equal(startTime, dependencyTelemetry.Timestamp); Assert.Equal(duration, dependencyTelemetry.Duration); Assert.Null(dependencyTelemetry.ResultCode); Assert.True(dependencyTelemetry.Success); AssertOperationContext(dependencyTelemetry, operationId); AssertContainsTelemetryProperty(dependencyTelemetry, "Statement", "Query"); }); }