public void given_httpClient_returns_valid_response_then_gateway_returns_access_token_string()
        {
            //arrange
            var mockHttpMessageHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict);

            mockHttpMessageHandler.Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent("{'result': 'fakeToken'}")
            }).Verifiable();

            HttpClient httpCLient = new HttpClient(mockHttpMessageHandler.Object)
            {
                BaseAddress = mockBaseUri
            };

            CRMTokenGateway _CRMTokenGateway = new CRMTokenGateway(httpCLient);

            //act
            var response = _CRMTokenGateway.GetCRMAccessToken();

            //assert
            Assert.Equal("fakeToken", response);
        }
        public void given_httpClient_returns_Unauthorized_response_then_gateway_throws_an_CRMTokenException_exception()
        {
            var mockHttpMessageHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict);

            mockHttpMessageHandler.Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.Unauthorized
            }).Verifiable();

            HttpClient httpCLient = new HttpClient(mockHttpMessageHandler.Object)
            {
                BaseAddress = mockBaseUri
            };

            CRMTokenGateway _CRMTokenGateway = new CRMTokenGateway(httpCLient);

            //assert
            Assert.Throws <CRMTokenException>(delegate { _CRMTokenGateway.GetCRMAccessToken(); });
        }
示例#3
0
        public CRMGatewayTests()
        {
            //common fake token to be used in all tests
            var mockHttpMessageHandlerCRMTokenGateway = new Mock <HttpMessageHandler>(MockBehavior.Strict);

            mockHttpMessageHandlerCRMTokenGateway.Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent("{'result': 'fakeToken'}")
            }).Verifiable();

            HttpClient crmClient = new HttpClient(mockHttpMessageHandlerCRMTokenGateway.Object)
            {
                BaseAddress = mockBaseUri
            };

            _mockCRMTokenGateway = new CRMTokenGateway(crmClient);
        }