public void BuildOrdersTelemetryChannelsInOrderOfUseCalls()
        {
           var config = new TelemetryConfiguration() {TelemetryChannel = new StubTelemetryChannel()};
           StringBuilder outputCollector = new StringBuilder();
           var builder = new TelemetryProcessorChainBuilder(config);
           builder.Use((next) => new StubTelemetryProcessor(next) { OnProcess = (item) => { outputCollector.Append("processor1"); } });
           builder.Use((next) => new StubTelemetryProcessor(next) { OnProcess = (item) => { outputCollector.Append("processor2"); } });
           builder.Build();
           config.TelemetryProcessorChain.Process(new StubTelemetry());            

           Assert.Equal("processor1processor2", outputCollector.ToString());
        }
        public void NullProcessorsAreSkipped()
        {
            var configuration = new TelemetryConfiguration();

            var builder = new TelemetryProcessorChainBuilder(configuration);
            builder.Use(next => new StubTelemetryProcessor(next));
            builder.Use(next => null);
            builder.Use(next => new StubTelemetryProcessor(next));

            builder.Build();

            Assert.Equal(3, configuration.TelemetryProcessors.Count); // Transmission is added by default
            Assert.Same(((StubTelemetryProcessor)configuration.TelemetryProcessors[0]).next, ((StubTelemetryProcessor)configuration.TelemetryProcessors[1]));
        }
        public void NullProcessorsAreSkipped()
        {
            var configuration = new TelemetryConfiguration();

            var builder = new TelemetryProcessorChainBuilder(configuration);

            builder.Use(next => new StubTelemetryProcessor(next));
            builder.Use(next => null);
            builder.Use(next => new StubTelemetryProcessor(next));

            builder.Build();

            Assert.Equal(3, configuration.TelemetryProcessors.Count); // Transmission is added by default
            Assert.Same(((StubTelemetryProcessor)configuration.TelemetryProcessors[0]).next, ((StubTelemetryProcessor)configuration.TelemetryProcessors[1]));
        }
 public void UsesTelemetryProcessorGivenInUseToBuild()
 {
     var config = new TelemetryConfiguration();
     var builder = new TelemetryProcessorChainBuilder(config);
     builder.Use((next) => new StubTelemetryProcessor(next));                    
     builder.Build();
     Assert.IsType<StubTelemetryProcessor>(config.TelemetryProcessorChain.FirstTelemetryProcessor);
 }
        public void ThrowsInvalidOperationExceptionOnReturningNullFromUse()
        {
            var builder = new TelemetryProcessorChainBuilder(new TelemetryConfiguration());
            builder.Use((next) => null);

            Assert.Throws<InvalidOperationException>(() => builder.Build());
            
        }
Beispiel #6
0
        public void ThrowsInvalidOperationExceptionOnReturningNullFromUse()
        {
            var builder = new TelemetryProcessorChainBuilder(new TelemetryConfiguration());

            builder.Use((next) => null);

            Assert.Throws <InvalidOperationException>(() => builder.Build());
        }
        public void UsesTelemetryProcessorGivenInUseToBuild()
        {
            var config  = new TelemetryConfiguration();
            var builder = new TelemetryProcessorChainBuilder(config);

            builder.Use(next => new StubTelemetryProcessor(next));
            builder.Build();
            Assert.IsType <StubTelemetryProcessor>(config.TelemetryProcessorChain.FirstTelemetryProcessor);
        }
        public void BuildOrdersTelemetryChannelsInOrderOfUseCalls()
        {
            var           config          = new TelemetryConfiguration(string.Empty, new StubTelemetryChannel());
            StringBuilder outputCollector = new StringBuilder();
            var           builder         = new TelemetryProcessorChainBuilder(config);

            builder.Use((next) => new StubTelemetryProcessor(next)
            {
                OnProcess = (item) => { outputCollector.Append("processor1"); }
            });
            builder.Use((next) => new StubTelemetryProcessor(next)
            {
                OnProcess = (item) => { outputCollector.Append("processor2"); }
            });
            builder.Build();
            config.TelemetryProcessorChain.Process(new StubTelemetry());

            Assert.Equal("processor1processor2", outputCollector.ToString());
        }
        public void BuildWillInitializeModules()
        {
            var tc1      = new TelemetryConfiguration();
            var builder1 = new TelemetryProcessorChainBuilder(tc1);

            builder1.Use((next) => new MockProcessorModule());
            builder1.Build();

            Assert.AreEqual(2, tc1.TelemetryProcessors.Count); // Transmission is added by default
            Assert.IsTrue(((MockProcessorModule)tc1.TelemetryProcessors[0]).ModuleInitialized, "Module was not initialized.");
        }
        public void NoExceptionOnReturningNullFromUse()
        {
            var configuration = new TelemetryConfiguration();

            var builder = new TelemetryProcessorChainBuilder(configuration);
            builder.Use(next => null);

            builder.Build();

            Assert.Equal(1, configuration.TelemetryProcessors.Count); // Transmission is added by default
        }
        public void NoExceptionOnReturningNullFromUse()
        {
            var configuration = new TelemetryConfiguration();

            var builder = new TelemetryProcessorChainBuilder(configuration);

            builder.Use(next => null);

            builder.Build();

            Assert.Equal(1, configuration.TelemetryProcessors.Count); // Transmission is added by default
        }
        public void BuildUsesTelemetryProcesorFactoryOnEachCall()
        {
            var tc1 = new TelemetryConfiguration();
            var tc2 = new TelemetryConfiguration();
            var builder1 = new TelemetryProcessorChainBuilder(tc1);
            builder1.Use((next) => new StubTelemetryProcessor(next));
            builder1.Build();

            var builder2 = new TelemetryProcessorChainBuilder(tc2);
            builder2.Use((next) => new StubTelemetryProcessor(next));
            builder2.Build();
            
            Assert.NotSame(tc1.TelemetryProcessors, tc2.TelemetryProcessors);
        }
        public void BuildUsesTelemetryProcesorFactoryOnEachCall()
        {
            var tc1      = new TelemetryConfiguration();
            var tc2      = new TelemetryConfiguration();
            var builder1 = new TelemetryProcessorChainBuilder(tc1);

            builder1.Use((next) => new StubTelemetryProcessor(next));
            builder1.Build();

            var builder2 = new TelemetryProcessorChainBuilder(tc2);

            builder2.Use((next) => new StubTelemetryProcessor(next));
            builder2.Build();

            Assert.NotSame(tc1.TelemetryProcessors, tc2.TelemetryProcessors);
        }
Beispiel #14
0
        protected static void BuildTelemetryProcessorChain(XElement definition, TelemetryProcessorChainBuilder builder)
        {
            if (definition != null)
            {
                IEnumerable <XElement> elems = definition.Elements(XmlNamespace + AddElementName);
                foreach (XElement addElement in elems)
                {
                    builder = builder.Use(current =>
                    {
                        var constructorArgs = new object[] { current };
                        return((ITelemetryProcessor)LoadInstance(addElement, typeof(ITelemetryProcessor), null, constructorArgs, null));
                    });
                }
            }

            builder.Build();
        }
        private static TelemetryProcessorChain CreateTelemetryProcessorChainWithSampling(IList<ITelemetry> sentTelemetry, double samplingPercentage)
        {
            var tc = new TelemetryConfiguration() {TelemetryChannel = new StubTelemetryChannel()};
            var channelBuilder = new TelemetryProcessorChainBuilder(tc);            
            channelBuilder.UseSampling(samplingPercentage);
            channelBuilder.Use((next) => new StubTelemetryProcessor(next) { OnProcess = (t) => sentTelemetry.Add(t) });
            
            channelBuilder.Build();

            return tc.TelemetryProcessorChain;
        }