public void Should_collect_and_process_data_from_telemetry_collector_on_each_scheduler_tick()
        {
            //Arrange
            var fakeTelemetryProcessor = new FakeTelemetryProcessor();
            var fakeTelemetryCollector = new FakeTelemetryCollector();

            fakeTelemetryCollector.ExptectedTelemetryData = new[]
            {
                new TelemetryData {
                    Kind = "Pressure", Value = "10 psi"
                },
                new TelemetryData {
                    Kind = "Temperature", Value = "70 °F"
                },
            };
            Func <string, ITelemetryProcessor> processorFactory = (string telemetryType) =>
            {
                return(fakeTelemetryProcessor);
            };

            var fakeScheduler = new FakeScheduler();


            //Act
            var telemetryClient = new TelemetryClient(fakeTelemetryCollector, fakeScheduler, processorFactory);

            telemetryClient.Start();
            fakeScheduler.RaiseElaspedEvent();

            //Assert
            Assert.That(() => fakeTelemetryProcessor.ReceivedTelemetryData.Count(data => data.Kind == "Pressure" && data.Value == "10 psi") == 1);
            Assert.That(() => fakeTelemetryProcessor.ReceivedTelemetryData.Count(data => data.Kind == "Temperature" && data.Value == "70 °F") == 1);
        }
예제 #2
0
            public static void RegistersTelemetryConfigurationFactoryMethodThatPopulatesItWithTelemetryProcessorFactoriesFromContainer()
            {
                var services = ApplicationInsightsExtensionsTests.GetServiceCollectionWithContextAccessor();

                services.AddSingleton <ITelemetryProcessorFactory>(new MockTelemetryProcessorFactory((next) => new FakeTelemetryProcessor(next)));

                services.AddApplicationInsightsTelemetry(new ConfigurationBuilder().Build());

                IServiceProvider serviceProvider          = services.BuildServiceProvider();
                var telemetryConfiguration                = serviceProvider.GetTelemetryConfiguration();
                FakeTelemetryProcessor telemetryProcessor = telemetryConfiguration.TelemetryProcessors.OfType <FakeTelemetryProcessor>().FirstOrDefault();

                Assert.NotNull(telemetryProcessor);
                Assert.True(telemetryProcessor.IsInitialized);
            }
        public void Should_start_scheduler_when_started()
        {
            //Arrange
            var fakeTelemetryProcessor = new FakeTelemetryProcessor();
            var fakeTelemetryCollector = new FakeTelemetryCollector();
            Func <string, ITelemetryProcessor> processorFactory = (string telemetryType) =>
            {
                return(fakeTelemetryProcessor);
            };

            var fakeScheduler = new FakeScheduler();

            //Act
            var telemetryClient = new TelemetryClient(fakeTelemetryCollector, fakeScheduler, processorFactory);

            telemetryClient.Start();

            //Assert
            Assert.True(fakeScheduler.Started);
        }
        public void Should_collect_data_from_telemetry_collector_on_each_scheduler_tick()
        {
            //Arrange
            var fakeTelemetryProcessor = new FakeTelemetryProcessor();
            var fakeTelemetryCollector = new FakeTelemetryCollector();

            fakeTelemetryCollector.ExptectedTelemetryData = Enumerable.Empty <TelemetryData>();
            Func <string, ITelemetryProcessor> processorFactory = (string telemetryType) =>
            {
                return(fakeTelemetryProcessor);
            };

            var fakeScheduler = new FakeScheduler();

            //Act
            var telemetryClient = new TelemetryClient(fakeTelemetryCollector, fakeScheduler, processorFactory);

            telemetryClient.Start();
            fakeScheduler.RaiseElaspedEvent();

            //Assert
            Assert.IsTrue(fakeTelemetryCollector.CollectWasInvoked);
        }