public static void CleanUp() { if (testDb != null) { testDb.DeleteStreamAsync().Wait(); } }
public async Task QueryPlanRetryTimeoutTestAsync() { HttpClientHandlerHelper httpClientHandler = new HttpClientHandlerHelper(); using (CosmosClient client = TestCommon.CreateCosmosClient(builder => builder .WithConnectionModeGateway() .WithHttpClientFactory(() => new HttpClient(httpClientHandler)))) { Cosmos.Database database = await client.CreateDatabaseAsync(Guid.NewGuid().ToString()); ContainerInternal container = (ContainerInternal)await database.CreateContainerAsync(Guid.NewGuid().ToString(), "/pk"); Container gatewayQueryPlanContainer = new ContainerInlineCore( client.ClientContext, (DatabaseInternal)database, container.Id, new DisableServiceInterop(client.ClientContext, container)); bool isQueryRequestFound = false; httpClientHandler.RequestCallBack = (request, cancellationToken) => { if (request.Headers.TryGetValues(HttpConstants.HttpHeaders.IsQueryPlanRequest, out IEnumerable <string> isQueryPlan) && isQueryPlan.FirstOrDefault() == bool.TrueString) { Assert.IsFalse(isQueryRequestFound, "Should only call get query plan once."); Assert.AreNotEqual(cancellationToken, default); isQueryRequestFound = true; } }; using FeedIterator <JObject> iterator = gatewayQueryPlanContainer.GetItemQueryIterator <JObject>("select * From T order by T.status"); FeedResponse <JObject> response = await iterator.ReadNextAsync(); Assert.IsTrue(isQueryRequestFound, "Query plan call back was not called."); string diagnostics = response.Diagnostics.ToString(); JObject parsedDiagnostics = JObject.Parse(diagnostics); JToken contextList = parsedDiagnostics["Context"]; Assert.IsNotNull(contextList.First(x => x["Id"]?.ToString() == "CreateQueryPipeline")); Assert.IsNotNull(contextList.First(x => x["Id"]?.ToString() == "Microsoft.Azure.Cosmos.GatewayStoreModel")); Assert.IsNotNull(contextList.First(x => x["Id"]?.ToString() == "SendHttpHelperAsync:" + nameof(HttpTimeoutPolicyControlPlaneRetriableHotPath))); await database.DeleteStreamAsync(); } }
public async Task StreamCrudTestAsync() { Cosmos.Database database = await this.CreateDatabaseStreamHelper(); using (ResponseMessage response = await database.ReadStreamAsync()) { Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNotNull(response.Headers); Assert.IsTrue(response.Headers.RequestCharge > 0); } using (ResponseMessage response = await database.DeleteStreamAsync()) { Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode); Assert.IsNotNull(response.Headers); Assert.IsTrue(response.Headers.RequestCharge > 0); } }