Exemplo n.º 1
0
        public void GetObservable_SingleDocument_OperationReturnsError_CallsOnErrorWithException()
        {
            // Arrange

            var operationResult = new Mock <IOperationResult <Beer> >();

            operationResult.Setup(m => m.Success).Returns(false);
            operationResult.Setup(m => m.Status).Returns(ResponseStatus.AuthenticationError);
            operationResult.Setup(m => m.Message).Returns("error message");

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.GetAsync <Beer>(It.IsAny <string>())).Returns(Task.FromResult(operationResult.Object));

            var observer = new AssertThrowsObserver <KeyValuePair <string, Beer> >();

            // Act

            bucket.Object.GetObservable <Beer>("key").Subscribe(observer);

            // Assert

            var ex = observer.Assert <CouchbaseGetException>();

            Assert.True(ex.Message.Contains(operationResult.Object.Message));
            Assert.AreEqual(operationResult.Object.Status, ex.Status);
        }
Exemplo n.º 2
0
        public void QueryObservable_QueryRequest_OperationReturnsError_CallsOnErrorWithException()
        {
            // Arrange

            var operationResult = new Mock <IQueryResult <Beer> >();

            operationResult.Setup(m => m.Success).Returns(false);
            operationResult.Setup(m => m.Status).Returns(QueryStatus.Errors);
            operationResult.Setup(m => m.Errors).Returns(new List <Error> {
                new Error {
                    Message = "error message"
                }
            });

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.QueryAsync <Beer>(It.IsAny <IQueryRequest>()))
            .Returns(Task.FromResult(operationResult.Object));

            var observer = new AssertThrowsObserver <Beer>();

            // Act

            bucket.Object.QueryObservable <Beer>(new QueryRequest()).Subscribe(observer);

            // Assert

            var ex = observer.Assert <CouchbaseN1QlQueryException>();

            Assert.True(ex.Message.Contains(operationResult.Object.Errors.First().Message));
            Assert.AreEqual(operationResult.Object.Status, ex.Status);
        }
Exemplo n.º 3
0
        public void QueryObservable_ViewQuery_OperationReturnsError_CallsOnErrorWithException()
        {
            // Arrange

            var operationResult = new Mock <IViewResult <Beer> >();

            operationResult.Setup(m => m.Success).Returns(false);
            operationResult.Setup(m => m.StatusCode).Returns(HttpStatusCode.InternalServerError);
            operationResult.Setup(m => m.Error).Returns("error message");

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.QueryAsync <Beer>(It.IsAny <IViewQueryable>()))
            .Returns(Task.FromResult(operationResult.Object));

            var observer = new AssertThrowsObserver <ViewRow <Beer> >();

            // Act

            bucket.Object.QueryObservable <Beer>(new ViewQuery()).Subscribe(observer);

            // Assert

            var ex = observer.Assert <CouchbaseViewQueryException>();

            Assert.True(ex.Message.Contains(operationResult.Object.Error));
            Assert.AreEqual(operationResult.Object.Error, ex.Error);
            Assert.AreEqual(operationResult.Object.StatusCode, ex.StatusCode);
        }
Exemplo n.º 4
0
        public void GetAndTouchDocumentObservable_OperationReturnsException_CallsOnErrorWithException()
        {
            // Arrange

            var operationResult = new Mock <IDocumentResult <Beer> >();

            operationResult.Setup(m => m.Success).Returns(false);
            operationResult.Setup(m => m.Status).Returns(ResponseStatus.InternalError);
            operationResult.Setup(m => m.Message).Returns("error message");
            operationResult.Setup(m => m.Exception).Returns(new ApplicationException("exception message"));

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.GetAndTouchDocumentAsync <Beer>(It.IsAny <string>(), It.IsAny <TimeSpan>()))
            .Returns(Task.FromResult(operationResult.Object));

            var observer = new AssertThrowsObserver <IDocument <Beer> >();

            // Act

            bucket.Object.GetAndTouchDocumentObservable <Beer>("key", TimeSpan.Zero).Subscribe(observer);

            // Assert

            var ex = observer.Assert <CouchbaseGetException>();

            Assert.True(ex.Message.Contains(operationResult.Object.Message));
            Assert.AreEqual(operationResult.Object.Status, ex.Status);
            Assert.AreEqual(operationResult.Object.Exception, ex.InnerException);
        }
Exemplo n.º 5
0
        public void GetDocumentObservable_SingleDocument_OperationThrowsException_CallsOnErrorWithException()
        {
            // Arrange

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.GetDocumentAsync <Beer>(It.IsAny <string>())).Throws(new ObjectDisposedException("test"));

            var observer = new AssertThrowsObserver <IDocument <Beer> >();

            // Act

            bucket.Object.GetDocumentObservable <Beer>("key").Subscribe(observer);

            // Assert

            var ex = observer.Assert <ObjectDisposedException>();

            Assert.AreEqual("test", ex.ObjectName);
        }
Exemplo n.º 6
0
        public void GetDocumentObservable_MultiDocument_OperationReturnsException_CallsOnErrorWithException()
        {
            var keys = new[] { "key1", "key2", "key3" };

            // Arrange

            var successOperationResult = new Mock <IDocumentResult <Beer> >();

            successOperationResult.Setup(m => m.Success).Returns(true);
            successOperationResult.Setup(m => m.Status).Returns(ResponseStatus.Success);
            successOperationResult.Setup(m => m.Content).Returns(new Beer {
                Name = "Beer"
            });

            var errorOperationResult = new Mock <IDocumentResult <Beer> >();

            errorOperationResult.Setup(m => m.Success).Returns(false);
            errorOperationResult.Setup(m => m.Status).Returns(ResponseStatus.InternalError);
            errorOperationResult.Setup(m => m.Message).Returns("error message");
            errorOperationResult.Setup(m => m.Exception).Returns(new ApplicationException("exception message"));

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.GetDocument <Beer>(keys[0])).Returns(successOperationResult.Object);
            bucket.Setup(m => m.GetDocument <Beer>(keys[1])).Returns(successOperationResult.Object);
            bucket.Setup(m => m.GetDocument <Beer>(keys[2])).Returns(errorOperationResult.Object);

            var observer = new AssertThrowsObserver <IDocument <Beer> >();

            // Act

            bucket.Object.GetDocumentObservable <Beer>(keys).Subscribe(observer);

            // Assert

            var ex = observer.Assert <CouchbaseGetException>();

            Assert.True(ex.Message.Contains(errorOperationResult.Object.Message));
            Assert.AreEqual(errorOperationResult.Object.Status, ex.Status);
            Assert.AreEqual(errorOperationResult.Object.Exception, ex.InnerException);
        }
Exemplo n.º 7
0
        public void QueryObservable_QueryRequest_OperationThrowsException_CallsOnErrorWithException()
        {
            // Arrange

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.QueryAsync <Beer>(It.IsAny <IQueryRequest>()))
            .Throws(new ObjectDisposedException("test"));

            var observer = new AssertThrowsObserver <Beer>();

            // Act

            bucket.Object.QueryObservable <Beer>(new QueryRequest()).Subscribe(observer);

            // Assert

            var ex = observer.Assert <ObjectDisposedException>();

            Assert.AreEqual("test", ex.ObjectName);
        }
Exemplo n.º 8
0
        public void GetAndTouchObservable_OperationThrowsException_CallsOnErrorWithException()
        {
            // Arrange

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.GetAndTouchAsync <Beer>(It.IsAny <string>(), It.IsAny <TimeSpan>()))
            .Throws(new ObjectDisposedException("test"));

            var observer = new AssertThrowsObserver <KeyValuePair <string, Beer> >();

            // Act

            bucket.Object.GetAndTouchObservable <Beer>("key", TimeSpan.Zero).Subscribe(observer);

            // Assert

            var ex = observer.Assert <ObjectDisposedException>();

            Assert.AreEqual("test", ex.ObjectName);
        }
Exemplo n.º 9
0
        public void GetObservable_MultiDocument_OperationThrowsException_CallsOnErrorWithException()
        {
            // Arrange

            var keys = new[] { "key1", "key2", "key3" };

            var bucket = new Mock <IBucket>();

            bucket.Setup(m => m.Get <Beer>(It.IsAny <string>())).Throws(new ObjectDisposedException("test"));

            var observer = new AssertThrowsObserver <KeyValuePair <string, Beer> >();

            // Act

            bucket.Object.GetObservable <Beer>(keys).Subscribe(observer);

            // Assert

            var ex = observer.Assert <ObjectDisposedException>();

            Assert.AreEqual("test", ex.ObjectName);
        }