public async Task UpdateRangeUpdatesEntities()
        {
            // Arrange
            var id         = Guid.NewGuid().ToString();
            var addedDummy = new Dummy
            {
                Id   = id,
                Name = "Test"
            };

            addedDummy.ValidateEntityForCosmosDb();
            var        documentId     = addedDummy.GetDocumentId();
            var        document       = addedDummy.GetCosmosDbFriendlyEntity();
            JsonReader reader         = new JTokenReader(document);
            var        actualDocument = new Document();

            actualDocument.LoadFrom(reader);
            JToken jtoken = JToken.FromObject(document);

            _mockDocumentClient.Setup(x => x.ReplaceDocumentAsync(DocumentHelpers.GetDocumentSelfLink("databaseName", It.IsAny <string>(), documentId), jtoken, It.IsAny <RequestOptions>())).ReturnsAsync(new ResourceResponse <Document>(actualDocument));

            var entityStore = new CosmosStore <Dummy>(_mockDocumentClient.Object, "databaseName", new CosmosDatabaseCreator(_mockDocumentClient.Object), new CosmosCollectionCreator(_mockDocumentClient.Object));

            addedDummy.Name = "newTest";
            // Act
            var result = await entityStore.UpdateRangeAsync(addedDummy);

            // Assert
            Assert.Empty(result.FailedEntities);
        }
Example #2
0
        public void DatabaseAndCollectionReturnSelfLink()
        {
            // Arrange
            var databaseName     = "dbName";
            var collectionName   = "collName";
            var documentId       = "documentId";
            var expectedSelfLink = $"dbs/{databaseName}/colls/{collectionName}/docs/{documentId}/";

            // Act
            var selfLink = DocumentHelpers.GetDocumentSelfLink(databaseName, collectionName, documentId);

            // Assert
            Assert.Equal(expectedSelfLink, selfLink);
        }
Example #3
0
        public async Task <CosmosResponse <TEntity> > RemoveByIdAsync(string id)
        {
            var documentSelfLink = DocumentHelpers.GetDocumentSelfLink(Settings.DatabaseName, _collectionName, id);

            try
            {
                var result = await DocumentClient.DeleteDocumentAsync(documentSelfLink);

                return(new CosmosResponse <TEntity>(result));
            }
            catch (DocumentClientException exception)
            {
                return(HandleDocumentClientException(exception));
            }
        }
Example #4
0
        public async Task <CosmosResponse <TEntity> > UpdateAsync(TEntity entity)
        {
            try
            {
                entity.ValidateEntityForCosmosDb();
                var documentId = entity.GetDocumentId();
                var document   = entity.GetCosmosDbFriendlyEntity();
                var result     = await DocumentClient.ReplaceDocumentAsync(DocumentHelpers.GetDocumentSelfLink(Settings.DatabaseName, _collectionName, documentId), document, new RequestOptions
                {
                    PartitionKey = entity.GetPartitionKeyValueForEntity()
                });

                return(new CosmosResponse <TEntity>(entity, result));
            }
            catch (DocumentClientException exception)
            {
                return(HandleDocumentClientException(entity, exception));
            }
        }