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);
            }
Exemple #2
0
        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
        }