public async Task LogAzureSearchDependency_SinksToApplicationInsights_ResultsInAzureSearchDependencyTelemetry()
        {
            // Arrange
            string searchServiceName = BogusGenerator.Commerce.Product();
            string operationName     = BogusGenerator.Commerce.ProductName();

            using (ILoggerFactory loggerFactory = CreateLoggerFactory())
            {
                ILogger logger = loggerFactory.CreateLogger <ApplicationInsightsSinkTests>();

                bool           isSuccessful = BogusGenerator.PickRandom(true, false);
                DateTimeOffset startTime    = DateTimeOffset.Now;
                TimeSpan       duration     = BogusGenerator.Date.Timespan();
                Dictionary <string, object> telemetryContext = CreateTestTelemetryContext();

                // Act
                logger.LogAzureSearchDependency(searchServiceName, operationName, isSuccessful, startTime, duration, telemetryContext);
            }

            // Assert
            using (IApplicationInsightsDataClient client = CreateApplicationInsightsClient())
            {
                await RetryAssertUntilTelemetryShouldBeAvailableAsync(async() =>
                {
                    EventsResults <EventsDependencyResult> results =
                        await client.Events.GetDependencyEventsAsync(ApplicationId, timespan: "PT30M");
                    Assert.NotEmpty(results.Value);
                    Assert.Contains(results.Value, result =>
                    {
                        return(result.Dependency.Type == "Azure Search" &&
                               result.Dependency.Target == searchServiceName &&
                               result.Dependency.Data == operationName);
                    });
                });
            }
        }
        public async Task LogAzureKeyVaultDependency_SinksToApplicationInsights_ResultsInAzureKeyVaultDependencyTelemetry()
        {
            // Arrange
            string vaultUri   = "https://myvault.vault.azure.net";
            string secretName = "MySecret";

            using (ILoggerFactory loggerFactory = CreateLoggerFactory())
            {
                ILogger logger = loggerFactory.CreateLogger <AzureKeyVaultDependencyTests>();

                bool           isSuccessful = BogusGenerator.PickRandom(true, false);
                DateTimeOffset startTime    = DateTimeOffset.Now;
                TimeSpan       duration     = BogusGenerator.Date.Timespan();
                Dictionary <string, object> telemetryContext = CreateTestTelemetryContext();

                // Act
                logger.LogAzureKeyVaultDependency(vaultUri, secretName, isSuccessful, startTime, duration, telemetryContext);
            }

            // Assert
            using (IApplicationInsightsDataClient client = CreateApplicationInsightsClient())
            {
                await RetryAssertUntilTelemetryShouldBeAvailableAsync(async() =>
                {
                    EventsResults <EventsDependencyResult> results =
                        await client.Events.GetDependencyEventsAsync(ApplicationId, timespan: "PT30M");
                    Assert.NotEmpty(results.Value);
                    Assert.Contains(results.Value, result =>
                    {
                        return(result.Dependency.Type == "Azure key vault" &&
                               result.Dependency.Target == vaultUri &&
                               result.Dependency.Data == secretName);
                    });
                });
            }
        }