public void execute_async_throws_if_the_context_is_null() { var sut = new DoNotAwaitActionBuilder() .Build(); Assert.Throws<ArgumentNullException>(() => sut.ExecuteAsync(null)); }
public void execute_async_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.Error(It.IsAny <string>())) .Do(waitHandle.Set); loggerService .When(x => x.GetLogger(It.IsAny <Type>())) .Return(logger); action .When(x => x.ExecuteAsync(It.IsAny <ExecutionContext>())) .Return(Observable.Throw <Unit>(new InvalidOperationException("Something bad happened"))); var sut = new DoNotAwaitActionBuilder() .WithLoggerService(loggerService) .WithInnerAction(action) .Build(); sut.ExecuteAsync(new ExecutionContext()); Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(3))); }
public void execute_async_throws_if_the_context_is_null() { var sut = new DoNotAwaitActionBuilder() .Build(); Assert.Throws <ArgumentNullException>(() => sut.ExecuteAsync(null)); }
public void execute_async_does_not_wait_for_inner_actions_execution_to_complete_before_itself_completing() { var action = new ActionMock(); action .When(x => x.ExecuteAsync(It.IsAny<ExecutionContext>())) .Return(Observable.Never<Unit>()); var sut = new DoNotAwaitActionBuilder() .WithInnerAction(action) .Build(); var completed = false; sut .ExecuteAsync(new ExecutionContext()) .Subscribe(_ => completed = true); Assert.True(completed); }
public void execute_async_does_not_wait_for_inner_actions_execution_to_complete_before_itself_completing() { var action = new ActionMock(); action .When(x => x.ExecuteAsync(It.IsAny <ExecutionContext>())) .Return(Observable.Never <Unit>()); var sut = new DoNotAwaitActionBuilder() .WithInnerAction(action) .Build(); var completed = false; sut .ExecuteAsync(new ExecutionContext()) .Subscribe(_ => completed = true); Assert.True(completed); }
public void execute_async_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.Error(It.IsAny<string>())) .Do(waitHandle.Set); loggerService .When(x => x.GetLogger(It.IsAny<Type>())) .Return(logger); action .When(x => x.ExecuteAsync(It.IsAny<ExecutionContext>())) .Return(Observable.Throw<Unit>(new InvalidOperationException("Something bad happened"))); var sut = new DoNotAwaitActionBuilder() .WithLoggerService(loggerService) .WithInnerAction(action) .Build(); sut.ExecuteAsync(new ExecutionContext()); Assert.True(waitHandle.Wait(TimeSpan.FromSeconds(3))); }