public static void RegistersTelemetryConfigurationFactoryMethodThatPopulatesItWithTelemetryInitializersFromContainer() { var telemetryInitializer = new FakeTelemetryInitializer(); var services = ApplicationInsightsExtensionsTests.GetServiceCollectionWithContextAccessor(); services.AddInstance <ITelemetryInitializer>(telemetryInitializer); services.AddApplicationInsightsTelemetry(new ConfigurationBuilder().Build()); IServiceProvider serviceProvider = services.BuildServiceProvider(); var telemetryConfiguration = serviceProvider.GetRequiredService <TelemetryConfiguration>(); Assert.Contains(telemetryInitializer, telemetryConfiguration.TelemetryInitializers); }
public static void UserCanEnableAndDisableTelemetryConfigurationActive(string configType, bool isEnable) { #pragma warning disable CS0618 // Type or member is obsolete // Dispose .Active to force a new .Active to be created during this test. TelemetryConfiguration.Active.Dispose(); // IMPORTANT: This is the same ikey specified in the config files that will be used for this test. string testString = "22222222-2222-3333-4444-555555555555"; var testTelemetryInitializer = new FakeTelemetryInitializer(); IServiceProvider serviceProvider = TestShim( configType: configType, isEnabled: isEnable, testConfig: (o, b) => { o.EnableActiveTelemetryConfigurationSetup = b; o.InstrumentationKey = testString; }, servicesConfig: (services) => services.AddSingleton <ITelemetryInitializer>(testTelemetryInitializer) ); // TelemetryConfiguration from DI should have custom set InstrumentationKey and TelemetryInitializer var telemetryConfiguration = serviceProvider.GetTelemetryConfiguration(); Assert.Equal(testString, telemetryConfiguration.InstrumentationKey); Assert.Same(testTelemetryInitializer, telemetryConfiguration.TelemetryInitializers.OfType <FakeTelemetryInitializer>().Single()); // TelemetryConfiguration.Active will only have custom set InstrumentationKey if .Active was enabled. Assert.Equal(testString.Equals(TelemetryConfiguration.Active.InstrumentationKey), isEnable); // TelemetryConfiguration.Active will only have custom TelemetryInitializer if .Active was enabled var activeTelemetryInitializer = TelemetryConfiguration.Active.TelemetryInitializers.OfType <FakeTelemetryInitializer>().SingleOrDefault(); if (isEnable) { Assert.Same(testTelemetryInitializer, activeTelemetryInitializer); } else { Assert.Null(activeTelemetryInitializer); } #pragma warning restore CS0618 // Type or member is obsolete }