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()); }
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); }
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()); }
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); }