Exemplo n.º 1
0
        public void execute_logs_any_error_raised_by_the_inner_action()
        {
            var waitHandle    = new ManualResetEventSlim();
            var logger        = new LoggerMock(MockBehavior.Loose);
            var loggerService = new LoggerServiceMock(MockBehavior.Loose);
            var action        = new ActionMock(MockBehavior.Loose);

            logger
            .When(x => x.Log(LogLevel.Error, It.IsAny <string>()))
            .Do(waitHandle.Set);

            loggerService
            .When(x => x.GetLogger(It.IsAny <Type>()))
            .Return(logger);

            action
            .When(x => x.Execute(It.IsAny <ExecutionContext>()))
            .Return(Observable.Throw <Unit>(new InvalidOperationException("Something bad happened")));

            var sut = new DoNotAwaitActionBuilder()
                      .WithLoggerService(loggerService)
                      .WithInnerAction(action)
                      .Build();

            sut.Execute(new ExecutionContext());

            Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(3)));
        }