Exemplo n.º 1
0
        public void WNhenTrailingLineContainsMissingFields_MissingFieldActionIsReplaceByNull_LastLineIsAppendedWithNulls()
        {
            var input = "a,b,c,d,e"
                        + "\na,b,c,d,"
                        + "\na,b,";

            var splitter = new BufferedCsvLineGenerator(new StringReader(input), new CsvLayout(), new CsvBehaviour(missingFieldAction: MissingFieldAction.ReplaceByNull));
            var result = splitter.Split().ToArray();
            Assert.AreEqual(3, result.Count());

            CollectionAssert.AreEqual(new[] { "a", "b", "c", "d", "e"  }, result[0].Fields);
            CollectionAssert.AreEqual(new[] { "a", "b", "c", "d", "" }, result[1].Fields);
            CollectionAssert.AreEqual(new[] { "a", "b", "", null, null }, result[2].Fields);
        }
Exemplo n.º 2
0
        public void SampleDataSplitTest()
        {
            var data = CsvReaderSampleData.SampleData1;

            var splitter = new BufferedCsvLineGenerator(new StringReader(data), new CsvLayout(), new CsvBehaviour());

            var result = splitter.Split().ToArray();

            CsvReaderSampleData.CheckSampleData1(false, 0, result[0].Fields);

        }
Exemplo n.º 3
0
        public void WhenSkipEmptyLinesIsFalse_AndEmptyLineIsAtTheEnd_ReturnsEmptyLine()
        {
            var input = "a,b\n   ";
            var splitter = new BufferedCsvLineGenerator(new StringReader(input), new CsvLayout(), new CsvBehaviour(skipEmptyLines:false));
            
            var result = splitter.Split().ToArray();

            Assert.AreEqual(2, result.Count());
            CollectionAssert.AreEqual(new[] { "a", "b" }, result[0].Fields);
            Assert.IsTrue(result[1].IsEmpty);
            CollectionAssert.AreEqual(new[] { "", string.Empty }, result[1].Fields);
        }
Exemplo n.º 4
0
 public void WhenInputContainsMultipleLinesWithTrailingEmptyField_ReturnsLinesWithEmptyField()
 {
     var input = "00,01,   \n10,11,   ";
     var splitter = new BufferedCsvLineGenerator(new StringReader(input), new CsvLayout(), new CsvBehaviour());
     var result = splitter.Split().ToArray();
     Assert.AreEqual(2, result.Count());
     CollectionAssert.AreEqual(new[] { "00", "01", "" }, result[0].Fields);
     CollectionAssert.AreEqual(new[] { "10", "11", "" }, result[1].Fields);
 }
Exemplo n.º 5
0
        public void WhenSkipEmptyLinesIsTrue_SkipsEmptyLines()
        {
            var input = "\r\n1\n\n2";
            var splitter = new BufferedCsvLineGenerator(new StringReader(input), new CsvLayout(),
                                           new CsvBehaviour(skipEmptyLines: true));

            var result = splitter.Split().ToArray();

            Assert.AreEqual("1", result[0].Fields[0]);
            Assert.AreEqual("2", result[1].Fields[0]);
        }
Exemplo n.º 6
0
        public void WhenSkipEmptyLinesIsFalse_ReturnsEmptyLines()
        {
            var input = "1\n\n2";
            var splitter = new BufferedCsvLineGenerator(new StringReader(input), new CsvLayout(),
                                           new CsvBehaviour(skipEmptyLines: false));

            var result = splitter.Split().ToArray();

            Assert.IsTrue(result[1].IsEmpty);
        }
Exemplo n.º 7
0
        public void WorksWithQuotedMultilineString()
        {
            var data1 = @"""1"";"" 2  ""in
side""  x "";3";

            var csvLayout = new CsvLayout('\"', ';');

            var splitter = new BufferedCsvLineGenerator(new StringReader(data1), csvLayout, new CsvBehaviour());

            var result = splitter.Split().ToArray();

            CollectionAssert.AreEqual(new[] { "1", @" 2  ""in
side""  x ", "3" }, result[0].Fields);

        }
Exemplo n.º 8
0
 private static IEnumerable<string> Split(string line, CsvLayout splitLineParams, CsvBehaviour behaviour)
 {
     var splitter = new BufferedCsvLineGenerator(new StringReader(line), splitLineParams, behaviour);
     var result = splitter.Split();
     return result.First().Fields;
 }
Exemplo n.º 9
0
        public void MultipleLinesAreSplitCorrectly()
        {
            var data1 = @"1;2;3
4;5;6";

            var csvLayout = new CsvLayout('\"', ';');

            var splitter = new BufferedCsvLineGenerator(new StringReader(data1), csvLayout, new CsvBehaviour());

            var result = splitter.Split().ToArray();

            CollectionAssert.AreEqual(new[] { "1", "2", "3" }, result[0].Fields);
            CollectionAssert.AreEqual(new[] { "4", "5", "6" }, result[1].Fields);

        }