Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }