public void get_async_throws_if_key_is_null() { var sut = new StateServiceBuilder() .Build(); Assert.Throws<ArgumentNullException>(() => sut.GetAsync<string>(null)); }
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 set_async_throws_if_key_is_null() { var sut = new StateServiceBuilder() .Build(); Assert.Throws<ArgumentNullException>(() => sut.SetAsync(null, "foo")); }
public void set_async_throws_if_key_is_null() { var sut = new StateServiceBuilder() .Build(); Assert.Throws <ArgumentNullException>(() => sut.SetAsync(null, "foo")); }
public void remove_async_throws_if_key_is_null() { var sut = new StateServiceBuilder() .Build(); Assert.Throws <ArgumentNullException>(() => sut.RemoveAsync <string>(null)); }
public void register_save_callback_throws_if_save_task_factory_is_null() { var sut = new StateServiceBuilder() .Build(); Assert.Throws <ArgumentNullException>(() => sut.RegisterSaveCallback(null)); }
public void save_async_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.SaveAsync(); Assert.True(firstExecuted); Assert.True(secondExecuted); }
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 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 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_async_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.SaveAsync(); Assert.True(firstExecuted); Assert.True(secondExecuted); loggerService .Verify(x => x.GetLogger(typeof(StateService))) .WasCalledExactlyOnce(); logger .Verify(x => x.Error(It.IsAny <string>())) .WasNotCalled(); logger .Verify(x => x.Error(It.IsAny <string>(), It.IsAny <object[]>())) .WasNotCalled(); logger .Verify(x => x.Error(It.IsAny <Exception>(), It.IsAny <string>(), It.IsAny <object[]>())) .WasNotCalled(); }
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 remove_forwards_the_call_onto_the_blob_cache() { var blobCache = new BlobCacheMock(MockBehavior.Loose); blobCache .When(x => x.Invalidate(It.IsAny<string>())) .Return(Observable.Return(Unit.Default)); var sut = new StateServiceBuilder() .WithBlobCache(blobCache) .Build(); sut.Remove<string>("some key"); // we don't verify the specific key because Akavache does some key manipulation internally blobCache .Verify(x => x.Invalidate(It.IsAny<string>())) .WasCalledExactlyOnce(); }
public void get_forwards_the_call_onto_the_blob_cache() { var blobCache = new BlobCacheMock(); blobCache .When(x => x.Get(It.IsAny <string>())) .Return(Observable.Return(new byte[0])); var sut = new StateServiceBuilder() .WithBlobCache(blobCache) .Build(); sut.Get <string>("some key"); // we don't verify the specific key because Akavache does some key manipulation internally blobCache .Verify(x => x.Get(It.IsAny <string>())) .WasCalledExactlyOnce(); }
public void remove_forwards_the_call_onto_the_blob_cache() { var blobCache = new BlobCacheMock(MockBehavior.Loose); blobCache .When(x => x.Invalidate(It.IsAny <string>())) .Return(Observables.Unit); var sut = new StateServiceBuilder() .WithBlobCache(blobCache) .Build(); sut.Remove <string>("some key"); // we don't verify the specific key because Akavache does some key manipulation internally blobCache .Verify(x => x.Invalidate(It.IsAny <string>())) .WasCalledExactlyOnce(); }
public void set_async_forwards_the_call_onto_the_blob_cache() { var blobCache = new BlobCacheMock(MockBehavior.Loose); blobCache .When(x => x.Insert(It.IsAny<string>(), It.IsAny<byte[]>(), It.IsAny<DateTimeOffset?>())) .Return(Observable.Return(Unit.Default)); var sut = new StateServiceBuilder() .WithBlobCache(blobCache) .Build(); sut.SetAsync<string>("some key", "some value"); // we don't verify the specific key because Akavache does some key manipulation internally blobCache .Verify(x => x.Insert(It.IsAny<string>(), It.IsAny<byte[]>(), It.IsAny<DateTimeOffset?>())) .WasCalledExactlyOnce(); }
public void set_forwards_the_call_onto_the_blob_cache() { var blobCache = new BlobCacheMock(MockBehavior.Loose); blobCache .When(x => x.Insert(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <DateTimeOffset?>())) .Return(Observable.Return(Unit.Default)); var sut = new StateServiceBuilder() .WithBlobCache(blobCache) .Build(); sut.Set <string>("some key", "some value"); // we don't verify the specific key because Akavache does some key manipulation internally blobCache .Verify(x => x.Insert(It.IsAny <string>(), It.IsAny <byte[]>(), It.IsAny <DateTimeOffset?>())) .WasCalledExactlyOnce(); }
public void get_async_forwards_the_call_onto_the_blob_cache() { var blobCache = new BlobCacheMock(); blobCache .When(x => x.Get(It.IsAny<string>())) .Return(Observable.Return(new byte[0])); var sut = new StateServiceBuilder() .WithBlobCache(blobCache) .Build(); sut.GetAsync<string>("some key"); // we don't verify the specific key because Akavache does some key manipulation internally blobCache .Verify(x => x.Get(It.IsAny<string>())) .WasCalledExactlyOnce(); }
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 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.SaveAsync(); Assert.False(firstExecuted); Assert.True(secondExecuted); }
public void save_async_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.SaveAsync(); Assert.True(firstExecuted); Assert.True(secondExecuted); loggerService .Verify(x => x.GetLogger(typeof(StateService))) .WasCalledExactlyOnce(); logger .Verify(x => x.Error(It.IsAny<string>())) .WasNotCalled(); logger .Verify(x => x.Error(It.IsAny<string>(), It.IsAny<object[]>())) .WasNotCalled(); logger .Verify(x => x.Error(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<object[]>())) .WasNotCalled(); }
public void save_async_does_not_fail_if_a_save_callback_fails() { var sut = new StateServiceBuilder() .Build(); sut.RegisterSaveCallback(_ => Observable.Throw<Unit>(new Exception("Failed"))); sut.SaveAsync(); }
public void save_async_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.SaveAsync(); logger .Verify(x => x.Error(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<object[]>())) .WasCalledExactlyOnce(); }
public void save_async_completes_even_if_there_are_no_save_callbacks() { var sut = new StateServiceBuilder() .Build(); var completed = false; sut .SaveAsync() .Subscribe(_ => completed = true); Assert.True(completed); }
public void register_save_callback_throws_if_save_task_factory_is_null() { var sut = new StateServiceBuilder() .Build(); Assert.Throws<ArgumentNullException>(() => sut.RegisterSaveCallback(null)); }