public void Ctor_Puts_All_DTOs_Into_DocumentResponses()
        {
            //arrange.
            var dto = new CouchDBDatabase.SaveDocListResponseDTO
            {
                new CouchDBDatabase.SaveDocResponseDTO {
                    Id = "id1", Rev = "rev1"
                },
                new CouchDBDatabase.SaveDocResponseDTO {
                    Id = "id2", Rev = "rev2"
                },
                new CouchDBDatabase.SaveDocResponseDTO {
                    Id = "id3", Rev = "rev3"
                }
            };

            //act.
            var sut = new SaveDocListResponse(dto);

            //assert.
            Assert.NotNull(sut.DocumentResponses);
            Assert.Equal(3, sut.DocumentResponses.Count);

            Assert.Equal(dto[0].Id, sut.DocumentResponses[0].Id);
            Assert.Equal(dto[0].Rev, sut.DocumentResponses[0].Revision);

            Assert.Equal(dto[1].Id, sut.DocumentResponses[1].Id);
            Assert.Equal(dto[1].Rev, sut.DocumentResponses[1].Revision);

            Assert.Equal(dto[2].Id, sut.DocumentResponses[2].Id);
            Assert.Equal(dto[2].Rev, sut.DocumentResponses[2].Revision);
        }
        public void Ctor_Keeps_Empty_DocumentResponses_If_No_DocDTO_Provided()
        {
            //arrange.
            var dto = new CouchDBDatabase.SaveDocListResponseDTO();

            //act.
            var sut = new SaveDocListResponse(dto);

            //assert.
            Assert.NotNull(sut.DocumentResponses);
            Assert.Empty(sut.DocumentResponses);
        }
示例#3
0
        public async void SaveObjDocumentsAsync_Returns_Same_Result_As_DB_Object(bool newEdits)
        {
            //arrange.
            var expectedResponse = new SaveDocListResponse(new CouchDBDatabase.SaveDocListResponseDTO());

            _sut.Setup(db => db.SaveStringDocumentsAsync(It.IsAny <string[]>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(expectedResponse));

            //act.
            var result = await _sut.Object.SaveObjectDocumentsAsync(new object[] { new { id = 123 } }, newEdits);

            //assert.
            Assert.Same(expectedResponse, result);
        }
示例#4
0
        public async void SaveEntitiesAsync_Updates_ID_And_Rev_Of_Entities_With_Success(bool newEdits)
        {
            //arrange.
            var entities = new[]
            {
                new SampleEntity {
                    _id = "1", _rev = "1", Name = "name 1"
                },
                new SampleEntity {
                    _id = "2", _rev = "2", Name = "name 2"
                }
            };

            var entityClones = entities.Select(e => JObject.FromObject(e)).Select(j => j.ToObject <SampleEntity>()).ToArray();

            var expectedResponse = new SaveDocListResponse(new CouchDBDatabase.SaveDocListResponseDTO
            {
                new CouchDBDatabase.SaveDocResponseDTO
                {
                    Id = "id 1", Rev = "rev 1", Error = "some error", Reason = "some reason"
                },
                new CouchDBDatabase.SaveDocResponseDTO
                {
                    Id = "id 2", Rev = "rev 2"
                }
            });

            _db.Setup(db => db.SaveStringDocumentsAsync(It.IsAny <string[]>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(expectedResponse));

            //act.
            await _sut.SaveEntitiesAsync(entities, newEdits);

            //assert.

            //first entity did not change due to error.
            Assert.Equal(entityClones[0]._id, entities[0]._id);
            Assert.Equal(entityClones[0]._rev, entities[0]._rev);

            //second entity changed (no error).
            Assert.Equal(expectedResponse.DocumentResponses[1].Id, entities[1]._id);
            Assert.Equal(expectedResponse.DocumentResponses[1].Revision, entities[1]._rev);
        }
示例#5
0
        public async void SaveDocumentsAsync_Updates_ID_And_Rev_Of_Documents_With_Success(bool newEdits)
        {
            //arrange.
            var objectDocs = new []
            {
                new { _id = "1", _rev = "1", name = "name 1" },
                new { _id = "2", _rev = "2", name = "name 2" }
            };

            var docs = new JObject[]
            {
                JObject.FromObject(objectDocs[0]),
                JObject.FromObject(objectDocs[1])
            };

            var expectedResponse = new SaveDocListResponse(new CouchDBDatabase.SaveDocListResponseDTO
            {
                new CouchDBDatabase.SaveDocResponseDTO
                {
                    Id = "id 1", Rev = "rev 1", Error = "some error", Reason = "some reason"
                },
                new CouchDBDatabase.SaveDocResponseDTO
                {
                    Id = "id 2", Rev = "rev 2"
                }
            });

            _sut.Setup(db => db.SaveStringDocumentsAsync(It.IsAny <string[]>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(expectedResponse));

            //act.
            await _sut.Object.SaveJsonDocumentsAsync(docs, newEdits);

            //assert.

            //first doc did not change due to error.
            Assert.Equal(objectDocs[0]._id, docs[0]["_id"]);
            Assert.Equal(objectDocs[0]._rev, docs[0]["_rev"]);

            //second doc changed (no error).
            Assert.Equal(expectedResponse.DocumentResponses[1].Id, docs[1]["_id"].ToString());
            Assert.Equal(expectedResponse.DocumentResponses[1].Revision, docs[1]["_rev"].ToString());
        }