public void OnStop_UsingReplaySettingsAndResult_CallesLogReplayIfNeeded(ActivityResult result, bool replayLog, bool shouldBeCalled)
        {
            Activity activity = new Activity(nameof(OnStop_UsingReplaySettingsAndResult_CallesLogReplayIfNeeded)).SetResult(result);

            Mock <IOptionsMonitor <OmexLoggingOptions> > mockOptions = new Mock <IOptionsMonitor <OmexLoggingOptions> >();

            mockOptions.Setup(m => m.CurrentValue).Returns(new OmexLoggingOptions()
            {
                ReplayLogsInCaseOfError = shouldBeCalled,
            });

            IOptions <OmexLoggingOptions> options = Options.Create(new OmexLoggingOptions {
                ReplayLogsInCaseOfError = replayLog
            });
            LogEventReplayerMock           replayerMock = new LogEventReplayerMock();
            ReplayableActivityStopObserver observer     = new ReplayableActivityStopObserver(replayerMock, mockOptions.Object);

            observer.OnStop(activity, null);

            if (shouldBeCalled)
            {
                Assert.AreEqual(activity, replayerMock.Activity);
            }
            else
            {
                Assert.IsNull(replayerMock.Activity);
            }
        }
        public void OnStop_UsingReplaySettingsAndResult_CallesLogReplayIfNeeded(TimedScopeResult result, bool replayLog, bool shouldBeCalled)
        {
            Activity   activity   = new Activity(nameof(OnStop_UsingReplaySettingsAndResult_CallesLogReplayIfNeeded));
            TimedScope timedScope = new TimedScope(activity, result);
            IOptions <OmexLoggingOptions> options = Options.Create(new OmexLoggingOptions {
                ReplayLogsInCaseOfError = replayLog
            });
            LogEventReplayerMock           replayerMock = new LogEventReplayerMock();
            ReplayableActivityStopObserver observer     = new ReplayableActivityStopObserver(replayerMock, options);

            observer.OnStop(activity, null);

            if (shouldBeCalled)
            {
                Assert.AreEqual(activity, replayerMock.Activity);
            }
            else
            {
                Assert.IsNull(replayerMock.Activity);
            }
        }