Exemple #1
0
        public void TestParseAndIsNextCharReturnCode()
        {
            // Arrange
            const string Csv =
                "Header,Arrange,,\"Assertion\"\r\n" +
                ",Data1,Data2,\r\n";

            // Act
            var result = new Parser().Parse(Csv);

            // Assert
            Assert.AreEqual(2, result.Count());

            // row[0]
            var row0 = result.ElementAt(0);
            Assert.AreEqual(4, row0.Count());
            Assert.AreEqual("Header", row0[0]);
            Assert.AreEqual("Arrange", row0[1]);
            Assert.AreEqual(null, row0[2]);
            Assert.AreEqual("Assertion", row0[3]);
            Assert.AreEqual(null, row0[2]);

            // row[1]
            var row1 = result.ElementAt(1);
            Assert.AreEqual(4, row1.Count());
            Assert.AreEqual(null, row1[0]);
            Assert.AreEqual("Data1", row1[1]);
            Assert.AreEqual(null, row1[3]);
        }
Exemple #2
0
        public void TestBlankLetter()
        {
            // Arrange
            var parser = new Parser();

            // Act
            parser.BlankLetter = " ";

            // Assert
            Assert.AreEqual(" ", parser.BlankLetter);
        }
Exemple #3
0
        public void TestParse()
        {
            // Arrange
            const string Csv = "Header,Arrange,,Assertion,";

            // Act
            var result = new Parser().Parse(Csv);

            // Assert
            Assert.AreEqual(1, result.Count());
            var row = result.ElementAt(0);
            Assert.AreEqual(5, row.Count());
            Assert.AreEqual("Header", row[0]);
            Assert.AreEqual("Arrange", row[1]);
            Assert.AreEqual(null, row[2]);
        }
Exemple #4
0
        public static void Main(string[] args)
        {
            Parser parser = new Parser();
            List<List<string>> result;

            // single line
            result = parser.Parse("a,b,c");
            Debug.Assert(result.Count == 1);
            Debug.Assert(result[0].Count == 3);
            Debug.Assert(result[0][0] == "a");
            Debug.Assert(result[0][1] == "b");
            Debug.Assert(result[0][2] == "c");

            // multiple lines
            result = parser.Parse("a,b,c\r\n" +
                                  "e,f");
            Debug.Assert(result.Count == 2);
            Debug.Assert(result[0].Count == 3);
            Debug.Assert(result[1][0] == "e");
            Debug.Assert(result[1][1] == "f");

            // double quoted value
            result = parser.Parse("\"a,b\",c\r\n" +
                                  "e,f");
            Debug.Assert(result.Count == 2);
            Debug.Assert(result[0].Count == 2);
            Debug.Assert(result[0][0] == "a,b");

            // double quoted value with return code
            result = parser.Parse("\"a\r\n" +
                                  "b\",c\r\n" +
                                  "e,f");
            Debug.Assert(result.Count == 2);
            Debug.Assert(result[0].Count == 2);
            Debug.Assert(result[0][0] == "a\nb");
        }
Exemple #5
0
        public void TestParseWithDoubleQuote()
        {
            // Arrange
            const string Csv = "\"H\"\"e,ader\",Arrange,,Assertion,aa\"\n";

            // Act
            var result = new Parser().Parse(Csv);

            // Assert
            Assert.AreEqual(1, result.Count());
            var row = result.ElementAt(0);
            Assert.AreEqual(5, row.Count());
            Assert.AreEqual("H\"e,ader", row[0]);
            Assert.AreEqual("Arrange", row[1]);
            Assert.AreEqual(null, row[2]);
        }
Exemple #6
0
        public void TestSkipKeyWords()
        {
            // Arrange
            var parser = new Parser();

            // Act
            parser.SkipKeyWords.Add("a");

            // Assert
            Assert.AreEqual("a", parser.SkipKeyWords.First());
        }
Exemple #7
0
        public void TestParseWithSkipWord2()
        {
            // Arrange
            const string Csv =
                "Header,Arrange,,\"Assertion\"\r\n" +
                "SKIP,Data1,Data2,\r\n";
            var parser = new Parser();
            parser.SkipKeyWords.Add("SKIP2");

            // Act
            var result = parser.Parse(Csv);

            // Assert
            Assert.AreEqual(2, result.Count());

            // row[0]
            var row0 = result.ElementAt(0);
            Assert.AreEqual("Header", row0[0]);
            Assert.AreEqual("Arrange", row0[1]);
            Assert.AreEqual(null, row0[2]);
            Assert.AreEqual("Assertion", row0[3]);
            Assert.AreEqual(null, row0[2]);
        }
Exemple #8
0
        public void TestParseWithSkipEmptyRow()
        {
            // Arrange
            const string Csv =
                "Header,Arrange,,\"Assertion\"\r\n" +
                "\r\n" +
                ",Data1,\"Data2\",";
            var parser = new Parser();
            parser.SkipEmptyRow = true;

            // Act
            var result = parser.Parse(Csv);

            // Assert
            Assert.AreEqual(2, result.Count());

            // row[0]
            var row0 = result.ElementAt(0);
            Assert.AreEqual("Header", row0[0]);
            Assert.AreEqual("Arrange", row0[1]);
            Assert.AreEqual(null, row0[2]);
            Assert.AreEqual("Assertion", row0[3]);
            Assert.AreEqual(null, row0[2]);
        }
Exemple #9
0
        public void TestParseWithMultiLine()
        {
            // Arrange
            const string Csv =
                "Header,Arrange,,Assertion,\r\n" +
                ",Data1,Data2,\r\n";

            // Act
            var result = new Parser().Parse(Csv);

            // Assert
            Assert.AreEqual(2, result.Count());

            // row[0]
            var row0 = result.ElementAt(0);
            Assert.AreEqual(5, row0.Count());
            Assert.AreEqual("Header", row0[0]);
            Assert.AreEqual("Arrange", row0[1]);
            Assert.AreEqual(null, row0[2]);

            // row[1]
            var row1 = result.ElementAt(1);
            Assert.AreEqual(4, row1.Count());
            Assert.AreEqual(null, row1[0]);
            Assert.AreEqual("Data1", row1[1]);
            Assert.AreEqual(null, row1[3]);
        }
Exemple #10
0
        public void TestParseWithDoubleQuoteEnd()
        {
            // Arrange
            const string Csv =
                "Header,Arrange,,Assertion,\r\n" +
                ",Data1,Data2\"";

            // Act
            var parser = new Parser();
            var result = parser.Parse(Csv);

            // Assert
            Assert.AreEqual(2, result.Count());

            // row[0]
            var row0 = result.ElementAt(0);
            Assert.AreEqual(5, row0.Count());
            Assert.AreEqual("Header", row0[0]);
            Assert.AreEqual("Arrange", row0[1]);
            Assert.AreEqual(null, row0[2]);

            // row[1]
            var row1 = result.ElementAt(1);
            Assert.AreEqual(3, row1.Count());
            Assert.AreEqual(null, row1[0]);
            Assert.AreEqual("Data1", row1[1]);
            Assert.AreEqual("Data2", row1[2]);
        }