コード例 #1
0
        public void BaasicClient_Dispose_test()
        {
            var handler = new Mock <HttpMessageHandler>();

            handler.Protected().Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()).Returns((HttpRequestMessage request, CancellationToken cancellationToken) =>
            {
                HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
                return(Task.FromResult(httpResponseMessage));
            });

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

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

            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 jsonFormatter = new JsonFormatter();

            BaasicClient target = new BaasicClient(clientConfiguration.Object, httpClientFactory.Object, jsonFormatter);

            target.Should().NotBeNull();

            Action execute = () => target.Dispose();

            execute.Should().NotThrow <Exception>();
        }
コード例 #2
0
        public void BaasicClient_constructor_test()
        {
            Mock <IDependencyResolver>    dependencyResolver  = new Mock <IDependencyResolver>();
            Mock <IClientConfiguration>   clientConfiguration = new Mock <IClientConfiguration>();
            Mock <Core.HttpClientFactory> httpClientFactory   = new Mock <Core.HttpClientFactory>(dependencyResolver.Object);
            var jsonFormatter = new JsonFormatter();

            BaasicClient target = new BaasicClient(clientConfiguration.Object, httpClientFactory.Object, jsonFormatter);

            target.Should().NotBeNull();
        }
コード例 #3
0
        public async Task BaasicClient_attach_authentication_token()
        {
            var handler = new Mock <HttpMessageHandler>();

            handler.Protected().Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()).Returns((HttpRequestMessage request, CancellationToken cancellationToken) =>
            {
                var authorizationHeader = request.Headers.Authorization;
                authorizationHeader.Should().NotBeNull();
                authorizationHeader.Scheme.Should().Be("bearer");
                authorizationHeader.Parameter.Should().Be("testToken");

                return(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)));
            });

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

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

            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"
            });

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

            BaasicClient target = new BaasicClient(clientConfiguration.Object, httpClientFactory.Object, new JsonFormatter());

            var requestUrl = target.GetApiUrl("anyRequest");

            await target.GetAsync <object>(requestUrl);

            await target.PostAsync <object>(requestUrl, new object());

            await target.PutAsync <object>(requestUrl, new object());

            await target.DeleteAsync(requestUrl);

            await target.SendAsync(new HttpRequestMessage(HttpMethod.Get, requestUrl));
        }
コード例 #4
0
        public async Task BaasicClient_DeleteAsync_RequestUriOnly_test()
        {
            var handler = new Mock <HttpMessageHandler>();

            handler.Protected().Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()).Returns((HttpRequestMessage request, CancellationToken cancellationToken) =>
            {
                HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.InternalServerError);
                if (request.RequestUri.ToString().EndsWith("/module/0"))
                {
                    httpResponseMessage = new HttpResponseMessage(HttpStatusCode.NotFound);
                }
                else if (request.RequestUri.ToString().EndsWith("/module/1"))
                {
                    httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
                }
                return(Task.FromResult(httpResponseMessage));
            });

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

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

            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 jsonFormatter = new JsonFormatter();

            BaasicClient target = new BaasicClient(clientConfiguration.Object, httpClientFactory.Object, jsonFormatter);

            target.Should().NotBeNull();

            Action execute = () => { if (target.DeleteAsync(target.GetApiUrl("/module/{0}", 0)).Result)
                                     {
                                         ;
                                     }
            };

            execute.ShouldThrow <HttpRequestException>();

            var expected = await target.DeleteAsync(target.GetApiUrl("/module/{0}", 1));

            expected.Should().BeTrue();
        }