Ejemplo n.º 1
0
        public void TryGet_Not_Found()
        {
            // arrange
            var entityStore = new EntityStore();
            var document    = new Mock <IDocument>();
            var store       = new OperationStore(entityStore);
            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 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);

            // 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 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);
        }
Ejemplo n.º 4
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);
        }
Ejemplo n.º 5
0
        public void Watch_For_Updates_With_SystemReactive()
        {
            // 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);
            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);
        }