Ejemplo n.º 1
0
        public void TestAssertWithFail()
        {
            // Arrange
            var key = fixture.Create<string>();
            var value = fixture.Create<string>();
            var item = new CookieAssertion
            {
                Key = key,
                Value = value,
            };

            var arrange = new Arrange
            {
                HttpResponse = new HttpResponse
                {
                    Cookies = new NameValueCollection
                    {
                        { key, "a value" },
                        { "b", "b value" },
                    }
                },
            };

            // Act
            item.Assert(null, arrange);

            // Assert
            Assert.IsFalse(item.Success);
        }
Ejemplo n.º 2
0
        public void TestAssertWithInvalidXsd()
        {
            // Arrange
            const string ActualHtml =
              @"<Shop>
                    <Item>a</Item>
                    <Item>b</Item>
                    <Item>c</Item>
                </Shop>";

            var item = new XsdAssertion
            {
                Xsd =
                    @"<?xml version='1.0' encoding='utf-8'?>
                        <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
                          <xs:element name='Shop'>
                            <xs:complexType>
                              <xs:sequence>"
            };

            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/xml" } };

            // Act
            item.Assert(null, actual);

            // Assert
            Assert.IsFalse(item.Success);
        }
Ejemplo n.º 3
0
        private bool TestAssert(string expected, string actual)
        {
            // Arrange
            var item = new UriAssertion { Value = expected };
            var arrange = new Arrange { HttpResponse = new HttpResponse { Uri = new Uri(actual) }, };

            // Act
            item.Assert(null, arrange);

            return item.Success;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Assert all assertion
 /// </summary>
 /// <param name="expected">expected Arrange</param>
 /// <param name="actual">actual Arrange</param>
 public void Assert(Arrange expected, Arrange actual)
 {
     foreach (var current in this.Assertions)
     {
         try
         {
             current.Assert(expected, actual);
         }
         catch (Exception exception)
         {
             current.Exception = exception;
             current.Success = false;
         }
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Assert all assertion
 /// </summary>
 /// <param name="expected">expected Arrange</param>
 /// <param name="actual">actual Arrange</param>
 public void Assert(Arrange expected, Arrange actual)
 {
     foreach (var current in this.Assertions)
     {
         try
         {
             current.Assert(expected, actual);
         }
         catch (Exception exception)
         {
             current.Exception = exception;
             current.Success   = false;
         }
     }
 }
        public void TestAssert()
        {
            // Arrange
            const string ExpectedXml =
                @"<Expected>2013/08/02 16:48:10</Expected>";
            const string ActualHtml =
                @"<html>
                    <body><span>2013/08/02 16:48:10</span></body>
                </html>";

            var item = new DateTimeAssertion
            {
                IsList = false,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Expected",
                    Attribute = null,
                    Pattern = null,
                    Format = "yyyy/MM/dd HH:mm:ss"
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/span",
                    Attribute = null,
                    Pattern = null,
                    Format = "yyyy/MM/dd HH:mm:ss"
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);

            // Assert
            Assert.IsTrue(item.Success);
        }
Ejemplo n.º 7
0
        public void TestAssert()
        {
            // Arrange
            const string ExpectedXml = @"<Shop>a</Shop>";
            const string ActualHtml =
                @"<html>
                    <body>
                        <span>a</span>
                    </body>
                </html>";

            var item = new TextAssertion
            {
                IsList = false,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Shop",
                    Attribute = null,
                    Pattern = null,
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/span",
                    Attribute = null,
                    Pattern = null,
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);

            // Assert
            Assert.IsTrue(item.Success);
        }
        private bool TestAssert(int expected, int actual)
        {
            // Arrange
            var item = new StatusCodeAssertion
            {
                Value = expected.ToString(CultureInfo.InvariantCulture),
            };

            var arrange = new Arrange
            {
                HttpResponse = new HttpResponse
                {
                    StatusCode = (HttpStatusCode)actual
                },
            };

            // Act
            item.Assert(null, arrange);

            return item.Success;
        }
Ejemplo n.º 9
0
        public void TestAssert()
        {
            // Arrange
            var key = fixture.Create<string>();
            var value = fixture.Create<string>();
            var item = new HeaderAssertion { Key = key, Value = value };
            var arrange = new Arrange
            {
                HttpResponse = new HttpResponse
                {
                    Headers = new NameValueCollection
                    {
                        { key, value },
                        { "b", "b value" },
                    }
                },
            };

            // Act
            item.Assert(null, arrange);

            // Assert
            Assert.IsTrue(item.Success);
        }
Ejemplo n.º 10
0
        public void TestAssertWithUrlDecode()
        {
            // Arrange
            const string ExpectedXml = @"<Shop>http://www.test.com/?query=a+b</Shop>";
            const string ActualHtml =
                @"<html>
                    <body>
                        <a href='http://www.test.com/?query=a+b'>link</a>
                    </body>
                </html>";

            var item = new TextAssertion
            {
                IsList = false,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Shop",
                    Attribute = null,
                    Pattern = null,
                    UrlDecode = true,
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/a",
                    Attribute = "href",
                    Pattern = null,
                    UrlDecode = true,
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);

            // Assert
            Assert.IsTrue(item.Success);
        }
Ejemplo n.º 11
0
        public void TestAssertWithListAndStaticValue()
        {
            // Arrange
            const string ActualHtml =
                @"<html>
                    <body>
                        <span>aaa</span>
                        <span>aaa</span>
                    </body>
                </html>";

            var item = new TextAssertion
            {
                IsList = true,
                Expected = new ContentAssertionItem
                {
                    Key = null,
                    Value = "aaa",
                    Query = null,
                    Attribute = null,
                    Pattern = null,
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/span",
                    Attribute = null,
                    Pattern = null,
                },
            };

            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(null, actual);
        }
Ejemplo n.º 12
0
        public void TestAssertWithListAndPattern()
        {
            // Arrange
            const string ExpectedXml =
                @"<Shop>
                    <Item>30 in</Item>
                    <Item>61°</Item>
                    <Item>66%</Item>
                    <Item>10 miles</Item>
                    <Item>0 mph</Item>
                </Shop>";
            const string ActualHtml =
                @"<html>
                    <body>
                        <ul>
                            <li>Barometer: 30 in</li>
                            <li>Dewpoint: 61°</li>
                            <li>Humidity: 66%</li>
                            <li>Visibility: 10 miles</li>
                            <li>Wind: 0 mph</li>
                        </ul>
                    </body>
                </html>";

            var item = new TextAssertion
            {
                IsList = true,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Shop/Item",
                    Attribute = null,
                    Pattern = null,
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/ul/li",
                    Attribute = null,
                    Pattern = @"[^:]:\s(.*)",
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);

            // Assert
            Assert.IsTrue(item.Success);
        }
Ejemplo n.º 13
0
        public void TestAssertWithList()
        {
            // Arrange
            const string ExpectedXml =
                @"<Shop>
                    <Item Name='a' />
                    <Item Name='b' />
                    <Item Name='c' />
                    <Item Name='d' />
                    <Item Name='e' />
                </Shop>";
            const string ActualHtml =
                @"<html>
                    <body>
                        <ul>
                            <li>a</li>
                            <li>b</li>
                            <li>c</li>
                            <li>d</li>
                            <li>e</li>
                        </ul>
                    </body>
                </html>";

            var item = new TextAssertion
            {
                IsList = true,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Shop/Item",
                    Attribute = "Name",
                    Pattern = null,
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/ul/li",
                    Attribute = null,
                    Pattern = null,
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);

            // Assert
            Assert.IsTrue(item.Success);
        }
Ejemplo n.º 14
0
        public void TestAssertWithFailedPattern()
        {
            // Arrange
            const string ExpectedXml =
                @"<Shop>
                    <Item>30 in</Item>
                </Shop>";
            const string ActualHtml =
                @"<html>
                    <body>
                        <ul><li>Barometer 30 in</li></ul>
                    </body>
                </html>";

            var item = new TextAssertion
            {
                IsList = false,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Shop/Item",
                    Attribute = null,
                    Pattern = null,
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/ul/li",
                    Attribute = null,
                    Pattern = @"[^:]:\s(.*)",
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);
        }
        public void TestAssertWithStandardDateTimeFormat()
        {
            // Arrange
            const string ExpectedXml =
                @"<Expected>2013-08-02T17:54:00</Expected>";
            const string ActualHtml =
                @"<html>
                    <body><span>17:54</span></body>
                </html>";

            var item = new DateTimeAssertion
            {
                IsList = false,
                IsTime = true,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Expected",
                    Attribute = null,
                    Pattern = null,
                    Format = "yyyy-MM-ddTHH:mm:ss"
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/span",
                    Attribute = null,
                    Pattern = null,
                    Format = "t", // Standard DateTime format
                    FormatCulture = "en-US"
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);

            // Assert
            Assert.IsTrue(item.Success);
        }
        public void TestAssertWithList()
        {
            // Arrange
            const string ExpectedXml =
                @"<Expected>
                    <Item Name='2013/08/02 16:00:00' />
                    <Item Name='2013/08/02 17:00:00' />
                    <Item Name='2013/08/02 18:00:00' />
                    <Item Name='2013/08/02 19:00:00' />
                    <Item Name='2013/08/02 20:00:00' />
                </Expected>";
            const string ActualHtml =
                @"<html>
                    <head></head>
                    <body>
                        <ul>
                            <li>2013/08/02 16:00:00</li>
                            <li>2013/08/02 17:00:00</li>
                            <li>2013/08/02 18:00:00</li>
                            <li>2013/08/02 19:00:00</li>
                            <li>2013/08/02 20:00:00</li>
                        </ul>
                    </body>
                </html>";

            var item = new DateTimeAssertion
            {
                IsList = true,
                Expected = new ContentAssertionItem
                {
                    Key = "Expected",
                    Value = null,
                    Query = "//Expected/Item",
                    Attribute = "Name",
                    Pattern = null,
                    Format = "yyyy/MM/dd HH:mm:ss"
                },
                Actual = new ContentAssertionItem
                {
                    Key = "Actual",
                    Value = null,
                    Query = "//body/ul/li",
                    Attribute = null,
                    Pattern = null,
                    Format = "yyyy/MM/dd HH:mm:ss"
                },
            };

            var expected = new Arrange { HttpResponse = new HttpResponse { Contents = ExpectedXml, ContentType = "text/xml" } };
            var actual = new Arrange { HttpResponse = new HttpResponse { Contents = ActualHtml, ContentType = "text/html" } };

            // Act
            item.Assert(expected, actual);

            // Assert
            Assert.IsTrue(item.Success);
        }