Ejemplo n.º 1
0
        public void IncompleteQuoteThrowsError()
        {
            string fakeCsvRow = "\"hi how are y";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();
        }
Ejemplo n.º 2
0
        public void SplitsApartLineWithQuotesWithCommas()
        {
            string fakeCsvRow = "\"1,2,3\"";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual("1,2,3", tokens[0]);
        }
Ejemplo n.º 3
0
        public void SplitsApartSimpleLine()
        {
            string fakeCsvRow = "1,2,3";

            Stream           csvStream = CreateMemoryStream(fakeCsvRow);
            ICsvRowTokenizer sut       = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3", tokens[2]);
        }
Ejemplo n.º 4
0
        public void AllowsQuotesWithinQuotes3()
        {
            string fakeCsvRow = "\"\"\"\"\"\"";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual("\"\"", tokens[0]);
        }
Ejemplo n.º 5
0
        public void SplitsApartValuelessLine()
        {
            string fakeCsvRow = ",,";

            Stream           csvStream = CreateMemoryStream(fakeCsvRow);
            ICsvRowTokenizer sut       = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual("", tokens[0]);
            Assert.AreEqual("", tokens[1]);
            Assert.AreEqual("", tokens[2]);
        }
Ejemplo n.º 6
0
        public void CanReadWithManyChunks()
        {
            string fakeCsvRow = "\"\"\"\"\"\"";

            Stream csvStream        = CreateMemoryStreamNoLastNewline(fakeCsvRow);
            Stream manyChunksStream = new SerialStreamAdapter(csvStream, 1);

            ICsvRowTokenizer sut = new CsvRowTokenizer(manyChunksStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual("\"\"", tokens[0]);
        }
Ejemplo n.º 7
0
        public void AllowsBigRowsAndQuotesWithinQuotes()
        {
            string fakeCsvRow = "1,\"My \"\"\"\"name\"\"\"\" is \"\"X\"\"\",4";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("My \"\"name\"\" is \"X\"", tokens[1]);
            Assert.AreEqual("4", tokens[2]);
        }
Ejemplo n.º 8
0
        public void AllowsLastCharQuote()
        {
            string fakeCsvRow = "1,2,\"3\"";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3", tokens[2]);
        }
Ejemplo n.º 9
0
        public void SplitsApartLineWithDoubleQuotedValue()
        {
            string fakeCsvRow = "1,\"2\",3";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3", tokens[2]);
        }
Ejemplo n.º 10
0
        public void AllowsMissingLastNewlineWithLastCharComma()
        {
            string fakeCsvRow = "1,2,";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("", tokens[2]);
        }
Ejemplo n.º 11
0
        public void AllowsLastCharEscapedQuote()
        {
            string fakeCsvRow = "1,2,3\"\"\"\"";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3\"", tokens[2]);
        }
Ejemplo n.º 12
0
        public void CanReadMultipleLinesWithNoLastNewline()
        {
            string fakeCsvRow = "1\r\n2\r\n3";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[][] rows = sut.ReadAllRows().ToArray();

            Assert.AreEqual(3, rows.Length);
            Assert.AreEqual("1", rows[0].Single());
            Assert.AreEqual("2", rows[1].Single());
            Assert.AreEqual("3", rows[2].Single());
        }
Ejemplo n.º 13
0
        public void SplitsApartQuoteAcrossWindowsLines()
        {
            string fakeCsvRow = "1,\"2\r\n3\",4";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2\r\n3", tokens[1]);
            Assert.AreEqual("4", tokens[2]);
        }
Ejemplo n.º 14
0
        public void AllowsBigRowsAndQuotesWithinQuotes()
        {
            string fakeCsvRow = "1,\"My \"\"\"\"name\"\"\"\" is \"\"X\"\"\",4";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("My \"\"name\"\" is \"X\"", tokens[1]);
            Assert.AreEqual("4", tokens[2]);
        }
Ejemplo n.º 15
0
        public void AllowsMissingLastNewlineWithLastCharQuoteWithManyChunks()
        {
            string fakeCsvRow = "1,2,\"3\"";

            Stream csvStream        = CreateMemoryStreamNoLastNewline(fakeCsvRow);
            Stream manyChunksStream = new SerialStreamAdapter(csvStream, 1);

            ICsvRowTokenizer sut = new CsvRowTokenizer(manyChunksStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3", tokens[2]);
        }
Ejemplo n.º 16
0
        public void AllowsQuotesWithinQuotesWithManyChunks2()
        {
            string fakeCsvRow = ",\"\"\"\"\"\",";

            Stream csvStream    = CreateMemoryStream(fakeCsvRow);
            Stream serialStream = new SerialStreamAdapter(csvStream, 1);

            ICsvRowTokenizer sut = new CsvRowTokenizer(serialStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("", tokens[0]);
            Assert.AreEqual("\"\"", tokens[1]);
            Assert.AreEqual("", tokens[2]);
        }
Ejemplo n.º 17
0
        public void SplitsApartLineWithBlankField()
        {
            string fakeCsvRow = "\"\",1,2,3";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);

            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(4, tokens.Length);
            Assert.AreEqual("", tokens[0]);
            Assert.AreEqual("1", tokens[1]);
            Assert.AreEqual("2", tokens[2]);
            Assert.AreEqual("3", tokens[3]);
        }
Ejemplo n.º 18
0
        public void SplitsApartValuelessLine()
        {
            string fakeCsvRow = ",,";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);
            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual("", tokens[0]);
            Assert.AreEqual("", tokens[1]);
            Assert.AreEqual("", tokens[2]);
        }
Ejemplo n.º 19
0
        public void SplitsApartSimpleLine()
        {
            string fakeCsvRow = "1,2,3";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);
            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3", tokens[2]);
        }
Ejemplo n.º 20
0
        public void SplitsApartQuoteAcrossWindowsLines()
        {
            string fakeCsvRow = "1,\"2\r\n3\",4";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2\r\n3", tokens[1]);
            Assert.AreEqual("4", tokens[2]);
        }
Ejemplo n.º 21
0
        public void SplitsApartLineWithQuotesWithCommas()
        {
            string fakeCsvRow = "\"1,2,3\"";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual("1,2,3", tokens[0]);
        }
Ejemplo n.º 22
0
        public void SplitsApartLineWithDoubleQuotedValue()
        {
            string fakeCsvRow = "1,\"2\",3";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3", tokens[2]);
        }
Ejemplo n.º 23
0
        public void SplitsApartLineWithBlankField()
        {
            string fakeCsvRow = "\"\",1,2,3";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(4, tokens.Length);
            Assert.AreEqual("", tokens[0]);
            Assert.AreEqual("1", tokens[1]);
            Assert.AreEqual("2", tokens[2]);
            Assert.AreEqual("3", tokens[3]);
        }
Ejemplo n.º 24
0
        public void IncompleteQuoteThrowsError()
        {
            string fakeCsvRow = "\"hi how are y";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();
        }
Ejemplo n.º 25
0
        public void CanReadWithManyChunks()
        {
            string fakeCsvRow = "\"\"\"\"\"\"";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);
            Stream manyChunksStream = new SerialStreamAdapter(csvStream, 1);

            ICsvRowTokenizer sut = new CsvRowTokenizer(manyChunksStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual("\"\"", tokens[0]);
        }
Ejemplo n.º 26
0
        public void CanReadMultipleLinesWithNoLastNewline()
        {
            string fakeCsvRow = "1\r\n2\r\n3";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[][] rows = sut.ReadAllRows().ToArray();

            Assert.AreEqual(3, rows.Length);
            Assert.AreEqual("1", rows[0].Single());
            Assert.AreEqual("2", rows[1].Single());
            Assert.AreEqual("3", rows[2].Single());
        }
Ejemplo n.º 27
0
        public void AllowsQuotesWithinQuotesWithManyChunks2()
        {
            string fakeCsvRow = ",\"\"\"\"\"\",";

            Stream csvStream = CreateMemoryStream(fakeCsvRow);
            Stream serialStream = new SerialStreamAdapter(csvStream, 1);

            ICsvRowTokenizer sut = new CsvRowTokenizer(serialStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("", tokens[0]);
            Assert.AreEqual("\"\"", tokens[1]);
            Assert.AreEqual("", tokens[2]);
        }
Ejemplo n.º 28
0
        public void AllowsQuotesWithinQuotes3()
        {
            string fakeCsvRow = "\"\"\"\"\"\"";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(1, tokens.Length);
            Assert.AreEqual("\"\"", tokens[0]);
        }
Ejemplo n.º 29
0
        public void AllowsMissingLastNewlineWithLastCharCarriageReturn()
        {
            string fakeCsvRow = "1,2,3\r";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);

            ICsvRowTokenizer sut = new CsvRowTokenizer(csvStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3\r", tokens[2]);
        }
Ejemplo n.º 30
0
        public void AllowsMissingLastNewlineWithLastCharQuoteWithManyChunks()
        {
            string fakeCsvRow = "1,2,\"3\"";

            Stream csvStream = CreateMemoryStreamNoLastNewline(fakeCsvRow);
            Stream manyChunksStream = new SerialStreamAdapter(csvStream, 1);

            ICsvRowTokenizer sut = new CsvRowTokenizer(manyChunksStream);
            string[] tokens = sut.ReadAllRows().First();

            Assert.AreEqual(3, tokens.Length);
            Assert.AreEqual("1", tokens[0]);
            Assert.AreEqual("2", tokens[1]);
            Assert.AreEqual("3", tokens[2]);
        }