public async Task AddAsync_Creates_IfTrue_AndNotFound(string partitionKeyPath, int collectionThroughput) { // Arrange var mockService = new Mock <ICosmosDBService>(MockBehavior.Strict); CosmosDBContext context = CosmosDBTestUtility.CreateContext(mockService.Object, partitionKeyPath: partitionKeyPath, throughput: collectionThroughput, createIfNotExists: true); var collector = new CosmosDBAsyncCollector <Item>(context); mockService .SetupSequence(m => m.UpsertDocumentAsync(It.IsAny <Uri>(), It.IsAny <object>())) .Throws(CosmosDBTestUtility.CreateDocumentClientException(HttpStatusCode.NotFound)) .Returns(Task.FromResult(new Document())); CosmosDBTestUtility.SetupDatabaseMock(mockService); CosmosDBTestUtility.SetupCollectionMock(mockService, partitionKeyPath, collectionThroughput); // Act await collector.AddAsync(new Item { Text = "hello!" }); // Assert mockService.VerifyAll(); // Verify that we upsert again after creation. mockService.Verify(m => m.UpsertDocumentAsync(It.IsAny <Uri>(), It.IsAny <object>()), Times.Exactly(2)); }
public async Task CreateIfNotExist_Succeeds() { // Arrange var mockService = new Mock <ICosmosDBService>(MockBehavior.Strict); CosmosDBContext context = CosmosDBTestUtility.CreateContext(mockService.Object); CosmosDBTestUtility.SetupDatabaseMock(mockService); CosmosDBTestUtility.SetupCollectionMock(mockService); // Act await CosmosDBUtility.CreateDatabaseAndCollectionIfNotExistAsync(context); // Assert mockService.VerifyAll(); }
public async Task CreateIfNotExists_DoesNotSetThroughput_IfZero() { // Arrange var mockService = new Mock <ICosmosDBService>(MockBehavior.Strict); var context = CosmosDBTestUtility.CreateContext(mockService.Object, throughput: 0); CosmosDBTestUtility.SetupDatabaseMock(mockService); CosmosDBTestUtility.SetupCollectionMock(mockService); // Act await CosmosDBUtility.CreateDatabaseAndCollectionIfNotExistAsync(context); // Assert mockService.VerifyAll(); }
public async Task CreateIfNotExists_SetsPartitionKey_IfSpecified() { // Arrange string partitionKeyPath = "partitionKey"; var mockService = new Mock <ICosmosDBService>(MockBehavior.Strict); var context = CosmosDBTestUtility.CreateContext(mockService.Object, partitionKeyPath: partitionKeyPath); CosmosDBTestUtility.SetupDatabaseMock(mockService); CosmosDBTestUtility.SetupCollectionMock(mockService, partitionKeyPath); // Act await CosmosDBUtility.CreateDatabaseAndCollectionIfNotExistAsync(context); // Assert mockService.VerifyAll(); }