public void save_executes_all_tasks_returned_by_saved_callbacks() { var sut = new StateServiceBuilder() .Build(); var firstExecuted = false; var secondExecuted = false; sut .RegisterSaveCallback( _ => { firstExecuted = true; return(Observables.Unit); }); sut .RegisterSaveCallback( _ => { secondExecuted = true; return(Observables.Unit); }); sut .Save() .Subscribe(); Assert.True(firstExecuted); Assert.True(secondExecuted); }
public void register_save_callback_returns_a_registration_handle_that_unregisters_the_callback_when_disposed() { var sut = new StateServiceBuilder() .Build(); var firstExecuted = false; var secondExecuted = false; var handle = sut .RegisterSaveCallback( _ => { firstExecuted = true; return(Observables.Unit); }); sut .RegisterSaveCallback( _ => { secondExecuted = true; return(Observables.Unit); }); handle.Dispose(); sut .Save() .Subscribe(); Assert.False(firstExecuted); Assert.True(secondExecuted); }
public void save_does_not_fail_if_a_save_callback_fails() { var sut = new StateServiceBuilder() .Build(); sut.RegisterSaveCallback(_ => Observable.Throw <Unit>(new Exception("Failed"))); sut.Save().Subscribe(); }
public void save_completes_even_if_there_are_no_save_callbacks() { var sut = new StateServiceBuilder() .Build(); var completed = false; sut .Save() .Subscribe(_ => completed = true); Assert.True(completed); }
public void save_ignores_any_null_tasks_returned_by_saved_callbacks() { var logger = new LoggerMock(MockBehavior.Loose); var loggerService = new LoggerServiceMock(MockBehavior.Loose); loggerService .When(x => x.GetLogger(typeof(StateService))) .Return(logger); var sut = new StateServiceBuilder() .WithLoggerService(loggerService) .Build(); var firstExecuted = false; var secondExecuted = false; sut .RegisterSaveCallback( _ => { firstExecuted = true; return(Observable.Return(Unit.Default)); }); sut.RegisterSaveCallback(_ => null); sut .RegisterSaveCallback( _ => { secondExecuted = true; return(Observable.Return(Unit.Default)); }); sut.Save().Subscribe(); Assert.True(firstExecuted); Assert.True(secondExecuted); loggerService .Verify(x => x.GetLogger(typeof(StateService))) .WasCalledExactlyOnce(); logger .Verify(x => x.Log(LogLevel.Error, It.IsAny <string>())) .WasNotCalled(); }
public void save_logs_an_error_if_a_save_callback_fails() { var logger = new LoggerMock(MockBehavior.Loose); var loggerService = new LoggerServiceMock(MockBehavior.Loose); loggerService .When(x => x.GetLogger(typeof(StateService))) .Return(logger); var sut = new StateServiceBuilder() .WithLoggerService(loggerService) .Build(); sut.RegisterSaveCallback(_ => Observable.Throw <Unit>(new Exception("whatever"))); sut.Save().Subscribe(); logger .Verify(x => x.Log(LogLevel.Error, It.IsAny <string>())) .WasCalledExactlyOnce(); }
public void save_executes_all_tasks_returned_by_saved_callbacks() { var sut = new StateServiceBuilder() .Build(); var firstExecuted = false; var secondExecuted = false; sut .RegisterSaveCallback( _ => { firstExecuted = true; return Observable.Return(Unit.Default); }); sut .RegisterSaveCallback( _ => { secondExecuted = true; return Observable.Return(Unit.Default); }); sut.Save().Subscribe(); Assert.True(firstExecuted); Assert.True(secondExecuted); }
public void register_save_callback_returns_a_registration_handle_that_unregisters_the_callback_when_disposed() { var sut = new StateServiceBuilder() .Build(); var firstExecuted = false; var secondExecuted = false; var handle = sut .RegisterSaveCallback( _ => { firstExecuted = true; return Observable.Return(Unit.Default); }); sut .RegisterSaveCallback( _ => { secondExecuted = true; return Observable.Return(Unit.Default); }); handle.Dispose(); sut.Save().Subscribe(); Assert.False(firstExecuted); Assert.True(secondExecuted); }
public void save_logs_an_error_if_a_save_callback_fails() { var logger = new LoggerMock(MockBehavior.Loose); var loggerService = new LoggerServiceMock(MockBehavior.Loose); loggerService .When(x => x.GetLogger(typeof(StateService))) .Return(logger); var sut = new StateServiceBuilder() .WithLoggerService(loggerService) .Build(); sut.RegisterSaveCallback(_ => Observable.Throw<Unit>(new Exception("whatever"))); sut.Save().Subscribe(); logger .Verify(x => x.Log(LogLevel.Error, It.IsAny<string>())) .WasCalledExactlyOnce(); }
public void save_does_not_fail_if_a_save_callback_fails() { var sut = new StateServiceBuilder() .Build(); sut.RegisterSaveCallback(_ => Observable.Throw<Unit>(new Exception("Failed"))); sut.Save().Subscribe(); }
public void save_ignores_any_null_tasks_returned_by_saved_callbacks() { var logger = new LoggerMock(MockBehavior.Loose); var loggerService = new LoggerServiceMock(MockBehavior.Loose); loggerService .When(x => x.GetLogger(typeof(StateService))) .Return(logger); var sut = new StateServiceBuilder() .WithLoggerService(loggerService) .Build(); var firstExecuted = false; var secondExecuted = false; sut .RegisterSaveCallback( _ => { firstExecuted = true; return Observable.Return(Unit.Default); }); sut.RegisterSaveCallback(_ => null); sut .RegisterSaveCallback( _ => { secondExecuted = true; return Observable.Return(Unit.Default); }); sut.Save().Subscribe(); Assert.True(firstExecuted); Assert.True(secondExecuted); loggerService .Verify(x => x.GetLogger(typeof(StateService))) .WasCalledExactlyOnce(); logger .Verify(x => x.Log(LogLevel.Error, It.IsAny<string>())) .WasNotCalled(); }