Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }