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 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()); }
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 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); }
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; }