public async Task TokenClient_destroy_token_test()
        {
            var tokenEndPoint = "https://api.baasic.com/v1/Test/Login";

            var handler = new Mock <HttpMessageHandler>();

            handler.Protected().Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()).Returns(async(HttpRequestMessage request, CancellationToken cancellationToken) =>
            {
                request.RequestUri.AbsoluteUri.Should().Be(tokenEndPoint);
                request.Content.Should().NotBeNull();
                request.Content.Headers.ContentType.MediaType.Should().Be("application/json");
                request.Method.Should().Be(HttpMethod.Delete);

                var content = await request.Content.ReadAsStringAsync();

                var deleteContent = JsonConvert.DeserializeObject <JObject>(content);

                var tokenProp = deleteContent.Property("token");
                tokenProp.Should().NotBeNull();
                tokenProp.Value.ToObject <string>().Should().Be("testToken");

                var typeProp = deleteContent.Property("type");
                typeProp.Should().NotBeNull();
                typeProp.Value.ToObject <string>().Should().Be("bearer");

                return(new HttpResponseMessage(HttpStatusCode.NoContent));
            });

            Mock <HttpClientFactory> httpClientFactory = new Mock <HttpClientFactory>(new Mock <IDependencyResolver>().Object);

            httpClientFactory.Setup(p => p.Create()).Returns(() =>
            {
                return(new HttpClient(handler.Object));
            });

            Mock <IBaasicClientFactory> baasicClientFactory = new Mock <IBaasicClientFactory>();

            baasicClientFactory.Setup(f => f.Create(It.IsAny <IClientConfiguration>())).Returns((IClientConfiguration config) => new BaasicClient(config, httpClientFactory.Object, new JsonFormatter()));

            Mock <IClientConfiguration> clientConfiguration = new Mock <IClientConfiguration>();

            clientConfiguration.Setup(p => p.DefaultMediaType).Returns(ClientConfiguration.HalJsonMediaType);
            clientConfiguration.Setup(p => p.DefaultTimeout).Returns(TimeSpan.FromSeconds(1));
            clientConfiguration.Setup(p => p.ApplicationIdentifier).Returns("Test");
            clientConfiguration.Setup(p => p.SecureBaseAddress).Returns("https://api.baasic.com/v1");
            clientConfiguration.Setup(p => p.BaseAddress).Returns("http://api.baasic.com/v1");

            var mockTokenHandler = new Mock <ITokenHandler>();

            mockTokenHandler.Setup(h => h.Get()).Returns(new AuthenticationToken()
            {
                ExpirationDate = DateTime.UtcNow.AddDays(1),
                Scheme         = "bearer",
                Token          = "testToken"
            });
            var tokenCleared = false;

            mockTokenHandler.Setup(h => h.Clear()).Returns(() =>
            {
                tokenCleared = true;

                return(true);
            });

            clientConfiguration.Setup(p => p.TokenHandler).Returns(mockTokenHandler.Object);

            var target = new TokenClient(clientConfiguration.Object, baasicClientFactory.Object, new JsonFormatter());

            var isDeleted = await target.DestroyAsync();

            isDeleted.Should().BeTrue();

            tokenCleared.Should().BeTrue();
        }