コード例 #1
0
        public void TestInternalServerErrorResponse()
        {
            // Arrange
            var mockResponse = new Mock <HttpWebResponse>();

            mockResponse
            .Setup(m => m.StatusCode)
            .Returns(HttpStatusCode.InternalServerError)
            .Verifiable();

            var mockRequest = GetMockRequest(mockResponse, true);
            var mockCreate  = GetMockWebRequestCreate(mockRequest);

            Action act = () =>
            {
                var generator = new IpsumDataGenerator(mockCreate.Object);
                generator.Generate();
            };

            // Assert
            act.ShouldThrow <HttpRequestException>();

            mockCreate.Verify();
            mockRequest.Verify();
            mockResponse.Verify();
        }
コード例 #2
0
        public void TestSuccessfulRequest()
        {
            // Arrange
            const string expectedString = "Lorem ipsum";
            var          responseObject = new
            {
                type     = "lorem",
                text_out = expectedString
            };

            var jsonString = JsonConvert.SerializeObject(responseObject, Formatting.Indented);

            // Create the mock response object
            var mockResponse = new Mock <HttpWebResponse>();

            mockResponse
            .SetupGet(m => m.StatusCode)
            .Returns(HttpStatusCode.OK)
            .Verifiable();

            mockResponse
            .Setup(m => m.GetResponseStream())
            .Returns(new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            .Verifiable();

            var mockRequest = GetMockRequest(mockResponse);
            var mockCreate  = GetMockWebRequestCreate(mockRequest);

            // Act
            var responseString = string.Empty;

            Action act = () =>
            {
                var generator = new IpsumDataGenerator(mockCreate.Object);
                responseString = generator.Generate();
            };

            // Assert
            act.ShouldNotThrow <WebException>();
            responseString.Should().Be(expectedString);

            mockCreate.Verify();
            mockRequest.Verify();
            mockResponse.Verify();
        }
コード例 #3
0
        public void TestErrorWithoutResponse()
        {
            // Arrange
            var mockRequest = GetMockRequest(null, true);
            var mockCreate  = GetMockWebRequestCreate(mockRequest);

            Action act = () =>
            {
                var generator = new IpsumDataGenerator(mockCreate.Object);
                generator.Generate();
            };

            // Assert
            act
            .ShouldThrow <WebException>()
            .And
            .Response
            .Should()
            .BeNull();

            mockCreate.Verify();
            mockRequest.Verify();
        }
コード例 #4
0
        public void TestEmptyResponseStream()
        {
            // Arrange

            // Create the mock response object
            var mockResponse = new Mock <HttpWebResponse>();

            mockResponse
            .SetupGet(m => m.StatusCode)
            .Returns(HttpStatusCode.OK)
            .Verifiable();

            mockResponse
            .Setup(m => m.GetResponseStream())
            .Returns <Stream>(null)
            .Verifiable();

            var mockRequest = GetMockRequest(mockResponse);
            var mockCreate  = GetMockWebRequestCreate(mockRequest);

            // Act
            var responseString = string.Empty;

            Action act = () =>
            {
                var generator = new IpsumDataGenerator(mockCreate.Object);
                responseString = generator.Generate();
            };

            // Assert
            act.ShouldNotThrow <WebException>();
            responseString.Should().BeEmpty();

            mockCreate.Verify();
            mockRequest.Verify();
            mockResponse.Verify();
        }