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