public void PipelineBuilder_AddProcessorChainWithExporter() { var builder = new SpanProcessorPipelineBuilder(); bool processorFactory1Called = false; bool processorFactory2Called = false; bool exportingFactory3Called = false; builder .AddProcessor(next => { processorFactory1Called = true; Assert.NotNull(next); return(new TestProcessor(next, "1")); }) .AddProcessor(next => { processorFactory2Called = true; Assert.NotNull(next); return(new TestProcessor(next, "2")); }) .SetExportingProcessor(exporter => { exportingFactory3Called = true; Assert.NotNull(exporter); return(new SimpleSpanProcessor(exporter)); }) .SetExporter(new TestSpanExporter(null)); var firstProcessor = (TestProcessor)builder.Build(); Assert.Equal(3, builder.Processors.Count); Assert.True(processorFactory1Called); Assert.True(processorFactory2Called); Assert.True(exportingFactory3Called); Assert.Equal("1", firstProcessor.Name); var secondProcessor = (TestProcessor)firstProcessor.Next; Assert.Equal("2", secondProcessor.Name); var thirdProcessor = secondProcessor.Next; Assert.IsType <SimpleSpanProcessor>(thirdProcessor); }
public void PipelineBuilder_AddProcessorChain() { var builder = new SpanProcessorPipelineBuilder(); bool processorFactory1Called = false; bool processorFactory2Called = false; bool processorFactory3Called = false; builder .AddProcessor(next => { processorFactory1Called = true; Assert.NotNull(next); return(new TestProcessor(next, "1")); }) .AddProcessor(next => { processorFactory2Called = true; Assert.NotNull(next); return(new TestProcessor(next, "2")); }) .AddProcessor(next => { processorFactory3Called = true; Assert.Null(next); return(new TestProcessor(next, "3")); }); var firstProcessor = (TestProcessor)builder.Build(); Assert.Equal(3, builder.Processors.Count); Assert.True(processorFactory1Called); Assert.True(processorFactory2Called); Assert.True(processorFactory3Called); Assert.Equal("1", firstProcessor.Name); var secondProcessor = (TestProcessor)firstProcessor.Next; Assert.Equal("2", secondProcessor.Name); var thirdProcessor = (TestProcessor)secondProcessor.Next; Assert.Equal("3", thirdProcessor.Name); }
public void PipelineBuilder_AddProcessor() { var builder = new SpanProcessorPipelineBuilder(); bool processorFactoryCalled = false; var processor = new TestProcessor(); builder.AddProcessor(e => { processorFactoryCalled = true; return(processor); }); Assert.Same(processor, builder.Build()); Assert.Single(builder.Processors); Assert.True(processorFactoryCalled); Assert.Same(processor, builder.Processors.Single()); }