Esempio n. 1
0
        internal static IOptionsMonitor <OmexActivityListenerOptions> CreateOptionsMonitor()
        {
            OmexActivityListenerOptions options = new OmexActivityListenerOptions();
            Mock <IOptionsMonitor <OmexActivityListenerOptions> > optionsMock = new Mock <IOptionsMonitor <OmexActivityListenerOptions> >();

            optionsMock.Setup(m => m.CurrentValue).Returns(options);

            return(optionsMock.Object);
        }
Esempio n. 2
0
        public async Task ActivityListeners_ControlsActivityCreation()
        {
            Mock <IActivityStartObserver> mockStartObserver = new();
            Mock <IActivityStopObserver>  mockStopObserver  = new();

            IOptionsMonitor <OmexActivityListenerOptions>?optionsMonitor = DefaultActivityListenerConfiguratorTests.CreateOptionsMonitor();
            OmexActivityListenerOptions options = optionsMonitor.CurrentValue;

            options.ShouldListenTo      = true;
            options.Sample              = ActivitySamplingResult.AllDataAndRecorded;
            options.SampleUsingParentId = ActivitySamplingResult.AllDataAndRecorded;

            ActivityListenerInitializerService service = new(
                new IActivityStartObserver[] { mockStartObserver.Object },
                new IActivityStopObserver[] { mockStopObserver.Object },
                new DefaultActivityListenerConfigurator(optionsMonitor));

            ActivitySource source = new(nameof(ActivityListeners_ControlsActivityCreation));

            Assert.IsNull(source.StartActivity("ActivityBeforeStart"));

            await service.StartAsync(CancellationToken.None);

            AssertActivityReporting(source.StartActivity("ActivityDuringRun"), mockStartObserver, mockStopObserver);

            options.Sample = ActivitySamplingResult.None;

            Assert.IsNull(source.StartActivity("ActivityWhenConfigDisabled"));

            options.Sample = ActivitySamplingResult.AllDataAndRecorded;

            AssertActivityReporting(source.StartActivity("ActivityWhenConfigEnable"), mockStartObserver, mockStopObserver);

            // check that Activity from Diagnostic listener also captured
            using (DiagnosticListener listener = new(nameof(ActivityListeners_ControlsActivityCreation)))
            {
                Activity activity = new("DiagnosticsListenerActivity");

                listener.StartActivity(activity, null);
                mockStartObserver.Verify(s => s.OnStart(activity, null), Times.Once);
                mockStartObserver.Reset();

                listener.StopActivity(activity, null);
                mockStopObserver.Verify(s => s.OnStop(activity, null), Times.Once);
                mockStopObserver.Reset();
            }

            await service.StopAsync(CancellationToken.None);

            Assert.IsNull(source.StartActivity("ActivityAfterStop"));
        }