public void Watch_For_Updates() { // arrange var entityStore = new EntityStore(); var document = new Mock <IDocument>(); var result = new Mock <IOperationResult <string> >(); var store = new OperationStore(entityStore); 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_Unsubscribe() { // 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(); IDisposable session = store .Watch <string>(request) .Subscribe(observer); // act session.Dispose(); // assert store.Set(request, result.Object); Assert.Null(observer.LastResult); }