public void TestParseWithNoItem()
        {
            // Arrange
            var csvRow = new List <List <string> >
            {
                new List <string> {
                    null, null, null, null, null, null, null
                },
            };

            // Arrange
            var header = new Header {
                Name = "Assertion", Depth = 1, From = 0, To = 6, Children = new List <Header>
                {
                    new Header {
                        Name = "Uri", Depth = 2, From = 1, To = 1,
                    },
                    new Header {
                        Name = "StatusCode", Depth = 2, From = 2, To = 2,
                    },
                    new Header {
                        Name = "Headers", Depth = 2, From = 3, To = 4, Children = new List <Header>
                        {
                            new Header {
                                Name = "Content-Type", Depth = 3, From = 3, To = 3,
                            },
                            new Header {
                                Name = "Last-Modified", Depth = 3, From = 4, To = 4,
                            },
                        }
                    },
                    new Header {
                        Name = "Cookies", Depth = 2, From = 5, To = 6, Children = new List <Header>
                        {
                            new Header {
                                Name = "Location", Depth = 3, From = 5, To = 5,
                            },
                            new Header {
                                Name = "Degree", Depth = 3, From = 6, To = 6,
                            },
                        }
                    },
                }
            };

            // Act
            var result = AssertionsParser.Parse(header, csvRow);

            // Assert
            Assert.AreEqual(0, result.Count());
        }
        public void TestParseWithInvalidAssertionName()
        {
            // Arrange
            var csvRow = new List <List <string> >
            {
                new List <string> {
                    null, "/local"
                },
            };

            var header = new Header {
                Name = "Assertion", Depth = 0, From = 0, To = 9, Children = new List <Header>
                {
                    new Header {
                        Name = "XXX", Depth = 1, From = 1, To = 1,
                    },
                }
            };

            // Act
            AssertionsParser.Parse(header, csvRow);
        }
示例#3
0
        /// <summary>
        /// Parses xml to TestCase
        /// </summary>
        /// <param name="rootHeader">rootHeader parameter</param>
        /// <param name="data">TestCase data</param>
        /// <param name="resources">resources parameter</param>
        /// <returns>TestCase object</returns>
        public static TestCase Parse(Header rootHeader, List <List <string> > data, ResourceManager resources)
        {
            if (rootHeader == null)
            {
                throw new ArgumentNullException("rootHeader");
            }
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            if (data.Count == 0 || data[0].Count == 0 || string.IsNullOrWhiteSpace(data[0][0]))
            {
                throw new WrongFileFormatException(
                          "Test case's format is invalid. data.Count == 0 || data[0].Count == 0 || string.IsNullOrWhiteSpace(data[0][0])");
            }

            return(new TestCase
            {
                Name = data[0][0],
                Arranges = ArrangesParser.Parse(rootHeader.Children[0], data[0]),
                Assertions = AssertionsParser.Parse(rootHeader.Children[1], data, resources)
            });
        }
        public void TestParse()
        {
            // Arrange
            var csvRow = new List <List <string> >
            {
                new List <string> {
                    null, "/local", null, null, null, null, null, null, null, null
                },
                new List <string> {
                    null, null, "200", null, null, null, null, null, null, null
                },
                new List <string> {
                    null, null, null, "text/html", "15:29:20", null, null, null, null, null
                },
                new List <string> {
                    null, null, null, null, null, "001", "C", null, null, null
                },
                new List <string> {
                    null, null, null, null, null, null, null, "XsdFile", null, null
                },
                new List <string> {
                    null, null, null, null, null, null, null, null, "DateTime Test", "true", null
                },
                new List <string> {
                    null, null, null, null, null, null, null, null, "Time Test", null, "true"
                },
            };

            var header = new Header
            {
                Name     = "Assertion",
                Depth    = 0,
                From     = 0,
                To       = 10,
                Children = new List <Header>
                {
                    new Header {
                        Name = "Uri", Depth = 1, From = 1, To = 1,
                    },
                    new Header {
                        Name = "StatusCode", Depth = 1, From = 2, To = 2,
                    },
                    new Header {
                        Name = "Headers", Depth = 1, From = 3, To = 4, Children = new List <Header>
                        {
                            new Header {
                                Name = "Content-Type", Depth = 2, From = 3, To = 3,
                            },
                            new Header {
                                Name = "Last-Modified", Depth = 2, From = 4, To = 4,
                            },
                        }
                    },
                    new Header {
                        Name = "Cookies", Depth = 1, From = 5, To = 6, Children = new List <Header>
                        {
                            new Header {
                                Name = "Location", Depth = 2, From = 5, To = 5,
                            },
                            new Header {
                                Name = "Degree", Depth = 2, From = 6, To = 6,
                            },
                        }
                    },
                    new Header {
                        Name = "Xsd", Depth = 1, From = 7, To = 7
                    },
                    new Header {
                        Name = "Contents", Depth = 1, From = 8, To = 8, Children = new List <Header>
                        {
                            new Header {
                                Name = "Name", Depth = 2, From = 8, To = 8,
                            },
                            new Header {
                                Name = "IsDateTime", Depth = 2, From = 9, To = 9,
                            },
                            new Header {
                                Name = "IsTime", Depth = 2, From = 10, To = 10,
                            },
                        }
                    },
                }
            };

            using (ShimsContext.Create())
            {
                ShimResourceManager.AllInstances.GetStringString = (s, v) => "XsdFileValue";
                var resource = new ShimResourceManager();

                // Act
                var result = AssertionsParser.Parse(header, csvRow, resource);

                // Assert

                // Uri
                Assert.AreEqual("/local", (result.ElementAt(0) as UriAssertion).Value);

                // StatusCode
                Assert.AreEqual("200", (result.ElementAt(1) as StatusCodeAssertion).Value);

                // Headers
                Assert.AreEqual("Content-Type", (result.ElementAt(2) as HeaderAssertion).Key);
                Assert.AreEqual("text/html", (result.ElementAt(2) as HeaderAssertion).Value);
                Assert.AreEqual("Last-Modified", (result.ElementAt(3) as HeaderAssertion).Key);
                Assert.AreEqual("15:29:20", (result.ElementAt(3) as HeaderAssertion).Value);

                // Cookies
                Assert.AreEqual("Location", (result.ElementAt(4) as CookieAssertion).Key);
                Assert.AreEqual("001", (result.ElementAt(4) as CookieAssertion).Value);
                Assert.AreEqual("Degree", (result.ElementAt(5) as CookieAssertion).Key);
                Assert.AreEqual("C", (result.ElementAt(5) as CookieAssertion).Value);

                // Xsd
                Assert.AreEqual("XsdFileValue", (result.ElementAt(6) as XsdAssertion).Xsd);

                // IsDateTime
                Assert.AreEqual(false, (result.ElementAt(7) as DateTimeAssertion).IsTime);

                // IsTime
                Assert.AreEqual(true, (result.ElementAt(8) as DateTimeAssertion).IsTime);
            }
        }