Esempio 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();
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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());
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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();
        }
Esempio 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]);
        }
Esempio 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());
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }
Esempio 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]);
        }