예제 #1
0
        public async Task TestTestWithNullExpected()
        {
            // Arrange
            var testCases = new TestCases
            {
                new TestCase
                {
                    Arranges = new Arranges
                    {
                        Actual = new Arrange { HttpRequest = new HttpRequest() } 
                    },
                    Assertions = new AssertionList { new StubAssertionBase { Success = true } }
                },
            };
            var httpRequestService = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequestActionOfHttpClient = (r, h) => Task.FromResult(new HttpResponse())
            };

            // Act
            await testCases.TestAsync(httpRequestService);

            // Assert
            Assert.IsTrue(testCases.Success);
            Assert.AreEqual(0, testCases.FailedCases.Count);
            Assert.IsNotNull(testCases.ResultMessage);
            Assert.IsNull(testCases.FailedMessage);
        }
예제 #2
0
        public async Task TestTestWithNullExpected()
        {
            // Arrange
            var testCases = new TestCases
            {
                new TestCase
                {
                    Arranges = new Arranges
                    {
                        Actual = new Arrange {
                            HttpRequest = new HttpRequest()
                        }
                    },
                    Assertions = new AssertionList {
                        new StubAssertionBase {
                            Success = true
                        }
                    }
                },
            };
            var httpRequestService = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequestActionOfHttpClient = (r, h) => Task.FromResult(new HttpResponse())
            };

            // Act
            await testCases.TestAsync(httpRequestService);

            // Assert
            Assert.IsTrue(testCases.Success);
            Assert.AreEqual(0, testCases.FailedCases.Count);
            Assert.IsNotNull(testCases.ResultMessage);
            Assert.IsNull(testCases.FailedMessage);
        }
예제 #3
0
        public async Task TestTestWithHavingFailedCases()
        {
            // Arrange
            var data = new List <List <string> >
            {
                new List <string> {
                    null, "Arrange", null, "Assertion", null, null, null, null
                },
                new List <string> {
                    null, "HttpRequest Expected", "HttpRequest Actual", "Contents", null, null, null, null
                },
                new List <string> {
                    null, "BaseUri", "BaseUri", "Name", "Expected", null, "Actual", null
                },
                new List <string> {
                    null, null, null, null, "Query", "Attribute", "Query", "Attribute"
                },
                new List <string> {
                    "test case 1", "ExpectedSite", "TargetSite", "text test 1", "//Expected/Item[1]", "Name", "//html/body/ul/li[1]", null
                },
                new List <string> {
                    null, null, null, "text test 2", "//Expected/Item[2]", "Name", "//html/body/ul/li[2]", null
                },
            };
            const string ExpectedXml =
                @"<Expected>
                    <Item Name='a' />
                    <Item Name='b' />
                </Expected>";
            const string ActualHtml =
                @"<html>
                    <body>
                        <ul>
                            <li>AAAA</li>
                            <li>BBBB</li>
                        </ul>
                    </body>
                </html>";
            var httpRequestServiceShim = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequest = request =>
                                              request.Name == "Expected"
                        ? Task.FromResult(new HttpResponse {
                    Contents = ExpectedXml, ContentType = "text/xml"
                })
                        : Task.FromResult(new HttpResponse {
                    Contents = ActualHtml, ContentType = "text/html"
                })
            };

            // Act
            var testCases = TestCasesParser.Parse(data);
            await testCases.TestAsync(httpRequestServiceShim);

            // Assert
            Assert.IsTrue(!testCases.Success);
            Assert.AreEqual(1, testCases.FailedCases.Count);
            Assert.AreEqual(2, testCases.FailedCases[0].FailedAssertions.Count);
        }
예제 #4
0
        public async Task TestTestWithOnlyStaticCases()
        {
            // Arrange
            var data = new List <List <string> >
            {
                new List <string> {
                    null, "Arrange", null, "Assertion", null, null, null, null
                },
                new List <string> {
                    null, "HttpRequest Expected", "HttpRequest Actual", "Contents", null, null, null, null
                },
                new List <string> {
                    null, "BaseUri", "BaseUri", "Name", "Expected", null, "Actual", null
                },
                new List <string> {
                    null, null, null, null, "Value", "Attribute", "Query", "Attribute"
                },
                new List <string> {
                    "test case 1", "ExpectedSte", "TargetSite", "text test 1", "a", null, "//html/body/ul/li[1]", null
                },
                new List <string> {
                    null, null, null, "text test 2", "b", null, "//html/body/ul/li[2]", null
                },
            };

            const string ActualHtml =
                @"<html>
                    <body>
                        <ul>
                            <li>a</li>
                            <li>b</li>
                        </ul>
                    </body>
                </html>";
            var httpRequestServiceShim = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequestActionOfHttpClient = (request, h) =>
                                                                Task.FromResult(new HttpResponse {
                    Contents = ActualHtml, ContentType = "text/html"
                })
            };

            // Act
            var testCases = TestCasesParser.Parse(data);
            await testCases.TestAsync(httpRequestServiceShim);

            // Assert
            Assert.IsTrue(testCases.Success);
        }
예제 #5
0
        public async Task TestTestWithFailedCaseHavingException()
        {
            // Arrange
            var exception = fixture.Create <Exception>();
            var testCases = new TestCases
            {
                new TestCase
                {
                    Arranges = new Arranges
                    {
                        Expected = new Arrange {
                            HttpRequest = new HttpRequest()
                        },
                        Actual = new Arrange {
                            HttpRequest = new HttpRequest()
                        }
                    },
                    Assertions = new AssertionList {
                        new StubAssertionBase {
                            Success = false, Exception = exception
                        }
                    },
                },
            };
            var httpRequestService = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequestActionOfHttpClient = (r, h) => Task.FromResult(new HttpResponse())
            };

            // Act
            await testCases.TestAsync(httpRequestService);

            // Assert
            Assert.IsFalse(testCases.Success);
            Assert.AreEqual(1, testCases.FailedCases.Count);
            Assert.IsNotNull(testCases.ResultMessage);
            Assert.IsNotNull(testCases.FailedMessage);
        }
예제 #6
0
        public async Task TestTestWithFailedCase()
        {
            // Arrange
            var testCases = new TestCases
            {
                new TestCase
                {
                    Arranges = new Arranges
                    {
                        Expected = new Arrange {
                            HttpRequest = new HttpRequest()
                        },
                        Actual = new Arrange {
                            HttpRequest = new HttpRequest()
                        }
                    },
                    Assertions = new AssertionList {
                        new StubAssertionBase {
                            Success = false
                        }
                    },
                },
            };
            var httpRequestService = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequest = request => Task.FromResult(new HttpResponse())
            };

            // Act
            await testCases.TestAsync(httpRequestService);

            // Assert
            Assert.IsFalse(testCases.Success);
            Assert.AreEqual(1, testCases.FailedCases.Count);
            Assert.IsNotNull(testCases.ResultMessage);
            Assert.IsNotNull(testCases.FailedMessage);
        }
        public async Task TestTestWithHavingFailedCases()
        {
            // Arrange
            var data = new List<List<string>>
            {
                new List<string> {          null,              "Arrange",                 null,   "Assertion",                 null,        null,                   null,        null },
                new List<string> {          null, "HttpRequest Expected", "HttpRequest Actual",    "Contents",                 null,        null,                   null,        null },
                new List<string> {          null,              "BaseUri",            "BaseUri",        "Name",           "Expected",        null,               "Actual",        null },
                new List<string> {          null,                   null,                 null,          null,              "Query", "Attribute",                "Query", "Attribute" },
                new List<string> { "test case 1",             "ExpectedSite",            "TargetSite", "text test 1", "//Expected/Item[1]",      "Name", "//html/body/ul/li[1]",        null },
                new List<string> {          null,                   null,                 null, "text test 2", "//Expected/Item[2]",      "Name", "//html/body/ul/li[2]",        null },
            };
            const string ExpectedXml =
                @"<Expected>
                    <Item Name='a' />
                    <Item Name='b' />
                </Expected>";
            const string ActualHtml =
                @"<html>
                    <body>
                        <ul>
                            <li>AAAA</li>
                            <li>BBBB</li>
                        </ul>
                    </body>
                </html>";
            var httpRequestServiceShim = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequestActionOfHttpClient = (request, h) =>
                    request.Name == "Expected"
                        ? Task.FromResult(new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" })
                        : Task.FromResult(new HttpResponse { Contents = ActualHtml, ContentType = "text/html" })
            };

            // Act
            var testCases = TestCasesParser.Parse(data);
            await testCases.TestAsync(httpRequestServiceShim);

            // Assert
            Assert.IsTrue(!testCases.Success);
            Assert.AreEqual(1, testCases.FailedCases.Count);
            Assert.AreEqual(2, testCases.FailedCases[0].FailedAssertions.Count);
        }
        public async Task TestTestWithOnlyStaticCases()
        {
            // Arrange
            var data = new List<List<string>>
            {
                new List<string> {          null,              "Arrange",                 null,   "Assertion",                 null,        null,                   null,        null },
                new List<string> {          null, "HttpRequest Expected", "HttpRequest Actual",    "Contents",                 null,        null,                   null,        null },
                new List<string> {          null,              "BaseUri",            "BaseUri",        "Name",           "Expected",        null,               "Actual",        null },
                new List<string> {          null,                   null,                 null,          null,              "Value", "Attribute",                "Query", "Attribute" },
                new List<string> { "test case 1",             "ExpectedSte",            "TargetSite", "text test 1",                  "a",        null, "//html/body/ul/li[1]",        null },
                new List<string> {          null,                   null,                 null, "text test 2",                  "b",        null, "//html/body/ul/li[2]",        null },
            };

            const string ActualHtml =
                @"<html>
                    <body>
                        <ul>
                            <li>a</li>
                            <li>b</li>
                        </ul>
                    </body>
                </html>";
            var httpRequestServiceShim = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequestActionOfHttpClient = (request, h) =>
                    Task.FromResult(new HttpResponse { Contents = ActualHtml, ContentType = "text/html" })
            };

            // Act
            var testCases = TestCasesParser.Parse(data);
            await testCases.TestAsync(httpRequestServiceShim);

            // Assert
            Assert.IsTrue(testCases.Success);
        }
예제 #9
0
        public async Task TestTestWithFailedCaseHavingException()
        {
            // Arrange
            var exception = fixture.Create<Exception>();
            var testCases = new TestCases
            {
                new TestCase
                {
                    Arranges = new Arranges
                    {
                        Expected = new Arrange { HttpRequest = new HttpRequest() },
                        Actual = new Arrange { HttpRequest = new HttpRequest() } 
                    },
                    Assertions = new AssertionList { new StubAssertionBase { Success = false, Exception = exception }},
                },
            };
            var httpRequestService = new StubIHttpRequestService
            {
                GetResponseAsyncHttpRequestActionOfHttpClient = (r, h) => Task.FromResult(new HttpResponse())
            };

            // Act
            await testCases.TestAsync(httpRequestService);

            // Assert
            Assert.IsFalse(testCases.Success);
            Assert.AreEqual(1, testCases.FailedCases.Count);
            Assert.IsNotNull(testCases.ResultMessage);
            Assert.IsNotNull(testCases.FailedMessage);
        }