コード例 #1
0
        public void ShouldNotFailIfOnNullDocumentRowsFromCouchDb()
        {
            var dbApiMock = new Mock <IDatabaseApi>();

            dbApiMock
            .Setup(a => a.Query(It.IsAny <ViewQuery>()))
            .Returns(
                (ViewQuery query) =>
                new ViewQueryResult(query: query, rows: new[] {
                new ViewResultRow(
                    new object[] { "key1", 0 }.ToJsonFragment(),
                    new { Title = "Object title", Subject = "some" }.ToJsonFragment(),
                    null,
                    null
                    )
            }, totalCount: 1, offset: 0).ToTask <IViewQueryResult>()
                );
            var session = new CouchSession(Default.Settings, Mock.Of <ICouchApi>(c => c.Db("testdb") == dbApiMock.Object));
            IViewQueryResult <Entity> queryResult =
                session.Synchronously.Query <Entity>(new ViewQuery {
                IncludeDocs = true
            });

            Assert.Equal(1, queryResult.Count);
            Assert.Equal(1, queryResult.Count());
            Assert.Null(queryResult.First());
        }
コード例 #2
0
        public void ShouldBindDocumentsCorrectly()
        {
            Entity entity = Entity.CreateStandard();

            var dbApiMock = new Mock <IDatabaseApi>(MockBehavior.Loose);

            dbApiMock
            .Setup(ca => ca.Query(It.IsAny <ViewQuery>()))
            .Returns(
                (ViewQuery query) => new ViewQueryResult(
                    query,
                    new[] {
                new ViewResultRow(
                    Entity.StandardDocId.ToJsonFragment(),
                    new { rev = Entity.StandardRevision }.ToJsonFragment(),
                    Entity.StandardDocId,
                    Entity.CreateDocWithRevision()
                    )
            },
                    totalCount: 1,
                    offset: 0
                    ).ToTask <IViewQueryResult>()
                );

            var session = new CouchSession(Default.Settings, Mock.Of <ICouchApi>(c => c.Db("testdb") == dbApiMock.Object));
            IViewQueryResult <Entity> queryResult =
                session.Synchronously.Query <Entity>(new ViewQuery {
                ViewName = "_all_docs", IncludeDocs = true
            });

            Entity firstRow = queryResult.First();

            Assert.NotNull(firstRow);
            Assert.Equal(Entity.StandardEntityId, firstRow.Id);
            Assert.Equal(Entity.StandardRevision, firstRow.Revision);
            Assert.Equal(entity.Age, firstRow.Age);
            Assert.Equal(entity.Date, firstRow.Date);
            Assert.Equal(entity.Name, firstRow.Name);
        }
コード例 #3
0
        public void ShouldNotFailIfOnNullValueRowsFromCouchDB()
        {
            var dbApiMock = new Mock <IDatabaseApi>();

            dbApiMock
            .Setup(a => a.Query(It.IsAny <ViewQuery>()))
            .Returns(
                (ViewQuery query) =>
                new ViewQueryResult(query: query, rows: new[] {
                new ViewResultRow(
                    new object[] { "key1", 0 }.ToJsonFragment(),
                    null,
                    Entity.StandardDocId,
                    Entity.CreateDocWithRevision()
                    )
            }, totalCount: 1, offset: 0).ToTask <IViewQueryResult>()
                );
            var session = new CouchSession(Default.Settings, Mock.Of <ICouchApi>(c => c.Db("testdb") == dbApiMock.Object));
            IViewQueryResult <ViewData> queryResult = session.Synchronously.Query <ViewData>(new ViewQuery());

            Assert.Equal(1, queryResult.Count);
            Assert.Equal(1, queryResult.Count());
            Assert.Null(queryResult.First());
        }
コード例 #4
0
        public void ShouldMapEntitiesIfTypeIsCompatible()
        {
            var dbApiMock = new Mock <IDatabaseApi>();

            dbApiMock
            .Setup(a => a.Query(It.IsAny <ViewQuery>()))
            .Returns(
                (ViewQuery q) =>
                new ViewQueryResult(query: q, rows: new[] {
                new ViewResultRow(
                    new object[] { "key1", 0 }.ToJsonFragment(),
                    new {
                    Title   = "Object title",
                    Subject = "some"
                }.ToJsonFragment(),
                    Entity.StandardDocId,
                    Entity.CreateDocWithRevision()
                    )
            }, totalCount: 1, offset: 0).ToTask <IViewQueryResult>()
                );
            var session = new CouchSession(Default.Settings, Mock.Of <ICouchApi>(c => c.Db("testdb") == dbApiMock.Object));
            IViewQueryResult <Entity> queryResult =
                session.Synchronously.Query <Entity>(new ViewQuery {
                IncludeDocs = true
            });

            Assert.NotNull(queryResult);
            Assert.Equal(1, queryResult.Count);
            Assert.Equal(1, queryResult.TotalCount);

            Entity row = queryResult.First();

            Assert.NotNull(row);
            Assert.Equal(Entity.StandardEntityId, row.Id);
            Assert.Equal(Entity.StandardRevision, row.Revision);
        }