public async Task InvalidPartitionExceptionRetryHandlerDoesNotRetryOn410()
        {
            CosmosClient client = MockDocumentClient.CreateMockCosmosClient();

            NamedCacheRetryHandler retryHandler = new NamedCacheRetryHandler(client);
            int         handlerCalls            = 0;
            int         expectedHandlerCalls    = 2;
            TestHandler testHandler             = new TestHandler((request, cancellationToken) => {
                if (handlerCalls == 0)
                {
                    handlerCalls++;
                    return(TestHandler.ReturnStatusCode((HttpStatusCode)StatusCodes.Gone, SubStatusCodes.NameCacheIsStale));
                }

                handlerCalls++;
                return(TestHandler.ReturnSuccess());
            });

            retryHandler.InnerHandler = testHandler;
            RequestInvokerHandler invoker = new RequestInvokerHandler(client);

            invoker.InnerHandler = retryHandler;
            CosmosRequestMessage requestMessage = new CosmosRequestMessage(HttpMethod.Get, new Uri("https://dummy.documents.azure.com:443/dbs"));
            await invoker.SendAsync(requestMessage, new CancellationToken());

            Assert.AreEqual(expectedHandlerCalls, handlerCalls);
        }
        public async Task InvalidPartitionExceptionRetryHandlerDoesNotRetryOnSuccess()
        {
            using CosmosClient client = MockCosmosUtil.CreateMockCosmosClient();

            NamedCacheRetryHandler retryHandler = new NamedCacheRetryHandler();
            int         handlerCalls            = 0;
            int         expectedHandlerCalls    = 1;
            TestHandler testHandler             = new TestHandler((request, cancellationToken) => {
                handlerCalls++;
                return(TestHandler.ReturnSuccess());
            });

            retryHandler.InnerHandler = testHandler;
            RequestInvokerHandler invoker = new RequestInvokerHandler(
                client,
                requestedClientConsistencyLevel: null)
            {
                InnerHandler = retryHandler
            };
            RequestMessage requestMessage = new RequestMessage(
                HttpMethod.Get,
                new Uri("https://dummy.documents.azure.com:443/dbs"));
            await invoker.SendAsync(requestMessage, new CancellationToken());

            Assert.AreEqual(expectedHandlerCalls, handlerCalls);
        }