public async Task GivenACreateRequest_WithWithNoConsistencySpecifiedAndNoRequestOptions_ThenNoRequestOptionsAreCreated() { _innerClient.CreateDocumentAsync("coll", (1, 2)).Returns(CosmosDbMockingHelper.CreateResourceResponse(new Document(), HttpStatusCode.OK, new NameValueCollection())); await _fhirClient.CreateDocumentAsync("coll", (1, 2)); await _innerClient.Received().CreateDocumentAsync("coll", (1, 2)); await _cosmosResponseProcessor.Received(1).ProcessResponse(Arg.Any <ResourceResponseBase>()); }
private static DocumentClientException CreateDocumentClientException(string requestCharge, string exceptionMessage, HttpStatusCode httpStatusCode) { var nameValueCollection = new NameValueCollection(); nameValueCollection.Add("x-ms-request-charge", requestCharge); DocumentClientException documentClientException = CosmosDbMockingHelper.CreateDocumentClientException(exceptionMessage, nameValueCollection, httpStatusCode); return(documentClientException); }
public async Task GivenAFeedRequest_WithWithNoConsistencySpecifiedAndNoRequestOptions_ThenNoRequestOptionsAreCreated() { _innerClient.ReadDatabaseFeedAsync() .ReturnsForAnyArgs(CosmosDbMockingHelper.CreateFeedResponse(Enumerable.Empty <Database>(), new NameValueCollection())); await _fhirClient.ReadDatabaseFeedAsync(); await _innerClient.Received().ReadDatabaseFeedAsync(); await _cosmosResponseProcessor.Received(1).ProcessResponse(Arg.Any <FeedResponse <Database> >()); }
public async Task GivenAFeedRequests_WhenExecutedAndFails_ThenTheResponseHeadersStillContainTheRequestCharge() { _innerClient .ReadDatabaseFeedAsync(Arg.Any <FeedOptions>()) .Throws(CosmosDbMockingHelper.CreateDocumentClientException("error", new NameValueCollection { { CosmosDbHeaders.RequestCharge, "10" } }, (HttpStatusCode?)429)); await Assert.ThrowsAsync <DocumentClientException>(() => _fhirClient.ReadDatabaseFeedAsync()); await _cosmosResponseProcessor.Received(1).ProcessException(Arg.Any <DocumentClientException>()); }
public async Task GivenAFeedRequest_WhenMaxContinuationSizeIsSet_ThenFeedRequestIsUpdated() { IDocumentClient client = new FhirDocumentClient(_innerClient, _fhirRequestContextAccessor, 5, _cosmosResponseProcessor); _innerClient .ReadDatabaseFeedAsync(Arg.Is <FeedOptions>(o => o.ResponseContinuationTokenLimitInKb == 5)) .Returns(CosmosDbMockingHelper.CreateFeedResponse(Enumerable.Empty <Database>(), new NameValueCollection())); await client.ReadDatabaseFeedAsync(); await _cosmosResponseProcessor.Received(1).ProcessResponse(Arg.Any <FeedResponse <Database> >()); }
private static DocumentClientException CreateDocumentClientException(string requestCharge, string exceptionMessage, HttpStatusCode httpStatusCode, string subStatus = null) { var nameValueCollection = new NameValueCollection(); nameValueCollection.Add(CosmosDbHeaders.RequestCharge, requestCharge); if (subStatus != null) { nameValueCollection.Add(CosmosDbHeaders.SubStatus, subStatus); } DocumentClientException documentClientException = CosmosDbMockingHelper.CreateDocumentClientException(exceptionMessage, nameValueCollection, httpStatusCode); return(documentClientException); }
public async Task GivenTwoFeedRequests_WhenExecuted_ThenTheResponseHeadersContainTheCumulativeRequestCharge() { _innerClient .ReadDatabaseFeedAsync(Arg.Any <FeedOptions>()) .Returns(CosmosDbMockingHelper.CreateFeedResponse(Enumerable.Empty <Database>(), new NameValueCollection { { CosmosDbHeaders.RequestCharge, "10" } })); await _fhirClient.ReadDatabaseFeedAsync(); await _fhirClient.ReadDatabaseFeedAsync(); await _cosmosResponseProcessor.Received(2).ProcessResponse(Arg.Any <FeedResponse <Database> >()); }
public async Task GivenACreateRequest_WithSessionConsistency_ThenTheResponseHeadersContainTheSessionToken() { _innerClient .CreateDocumentAsync("coll", (1, 2), Arg.Is <RequestOptions>(o => o.ConsistencyLevel == ConsistencyLevel.Session && o.SessionToken == "1")) .Returns(CosmosDbMockingHelper.CreateResourceResponse(new Document(), HttpStatusCode.OK, new NameValueCollection { { CosmosDbHeaders.SessionToken, "2" } })); _requestHeaders.Add(CosmosDbHeaders.ConsistencyLevel, "Session"); _requestHeaders.Add(CosmosDbHeaders.SessionToken, "1"); await _fhirClient.CreateDocumentAsync("coll", (1, 2)); await _cosmosResponseProcessor.Received(1).ProcessResponse(Arg.Any <ResourceResponseBase>()); }
public async Task GivenAStoredProcedureRequestWithUri_WithSessionConsistency_ThenTheResponseHeadersContainTheSessionToken() { _innerClient .ExecuteStoredProcedureAsync <int>(default(Uri), Arg.Is <RequestOptions>(o => o.ConsistencyLevel == ConsistencyLevel.Session)) .Returns(CosmosDbMockingHelper.CreateStoredProcedureResponse(42, HttpStatusCode.OK, new NameValueCollection { { CosmosDbHeaders.SessionToken, "2" } })); _requestHeaders.Add(CosmosDbHeaders.ConsistencyLevel, "Session"); _requestHeaders.Add(CosmosDbHeaders.SessionToken, "1"); await _fhirClient.ExecuteStoredProcedureAsync <int>(default(Uri)); await _cosmosResponseProcessor.Received(1).ProcessResponse(Arg.Any <StoredProcedureResponse <int> >()); }
public async Task GivenAFeedRequest_WithSessionConsistency_ThenTheResponseHeadersContainTheSessionToken() { _innerClient .ReadDatabaseFeedAsync(Arg.Is <FeedOptions>(o => o.ConsistencyLevel == ConsistencyLevel.Session && o.SessionToken == "1")) .Returns(CosmosDbMockingHelper.CreateFeedResponse(Enumerable.Empty <Database>(), new NameValueCollection { { CosmosDbHeaders.SessionToken, "2" } })); _requestHeaders.Add(CosmosDbHeaders.ConsistencyLevel, "Session"); _requestHeaders.Add(CosmosDbHeaders.SessionToken, "1"); await _fhirClient.ReadDatabaseFeedAsync(); await _cosmosResponseProcessor.Received(1).ProcessResponse(Arg.Any <FeedResponse <Database> >()); }