public void TryGet_Not_Found() { // arrange var entityChangeObserver = new MockEntityChangeObservable(); var document = new Mock <IDocument>(); var store = new OperationStore(entityChangeObserver); var request = new OperationRequest("abc", document.Object); // act var success = store.TryGet(request, out IOperationResult <string>?retrieved); // assert Assert.False(success); Assert.Null(retrieved); }
public void Store_And_Retrieve_Result() { // arrange var entityChangeObserver = new MockEntityChangeObservable(); var document = new Mock <IDocument>(); var result = new Mock <IOperationResult <string> >(); var store = new OperationStore(entityChangeObserver); var request = new OperationRequest("abc", document.Object); // act store.Set(request, result.Object); var success = store.TryGet(request, out IOperationResult <string>?retrieved); // assert Assert.True(success); Assert.Same(result.Object, retrieved); }
public void Watch_For_Updates() { // arrange var entityChangeObserver = new MockEntityChangeObservable(); var document = new Mock <IDocument>(); var result = new Mock <IOperationResult <string> >(); var store = new OperationStore(entityChangeObserver); var request = new OperationRequest("abc", document.Object); var observer = new ResultObserver(); // act using IDisposable session = store .Watch <string>(request) .Subscribe(observer); // assert store.Set(request, result.Object); Assert.Same(result.Object, observer.LastResult); }
public void Watch_For_Updates_With_SystemReactive() { // arrange var entityChangeObserver = new MockEntityChangeObservable(); var document = new Mock <IDocument>(); var result = new Mock <IOperationResult <string> >(); var store = new OperationStore(entityChangeObserver); var request = new OperationRequest("abc", document.Object); IOperationResult <string>?lastResult = null; // act using IDisposable session = System.ObservableExtensions.Subscribe( store.Watch <string>(request), r => { lastResult = r; }); // assert store.Set(request, result.Object); Assert.Same(result.Object, lastResult); }