public void UninitializedParserTest()
        {
            FieldParser parser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(",", "\r\n", "\"");

            Assert.AreEqual <bool>(false, parser.RowDelimiterMatch);
            Assert.AreEqual <string>(string.Empty, parser.CurrentText);
        }
        private static void TestEmbeddedQualifiers(string textToParse, string[] expectedFields)
        {
            IFileReader reader = FileReaderTest.GetReader(textToParse);
            FieldParser parser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(",", "\r\n", "\"");

            foreach (string fieldData in expectedFields)
            {
                VerifySuccessfulFieldParsing(parser, reader, fieldData);
            }

            Assert.AreEqual(reader.IsEOF, true);
        }
        public void ParseDelimitedFieldsMultiCharacterDelimiterQualifiersError()
        {
            IFileReader reader = FileReaderTest.GetReader("A,.,\"B,C,D\",.1,2,3,.,4,\r\na,.,b");
            FieldParser parser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(",.,", "\r\n", "\"");

            VerifySuccessfulFieldParsing(parser, reader, "A");
            VerifySuccessfulFieldParsing(parser, reader, "B,C,D,.1,2,3");
            VerifySuccessfulLastRowFieldParsing(parser, reader, "4,");
            VerifySuccessfulFieldParsing(parser, reader, "a");
            VerifyFieldParsing(parser, reader, "b");

            Assert.AreEqual(reader.IsEOF, true);
        }
        public void DelimitedFieldsWithQualifiersErrorTest()
        {
            IFileReader reader = FileReaderTest.GetReader("\"A\",\"B\",\"C\" \r\n\"1\",\"2\" ,3");
            FieldParser parser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(",", "\r\n", "\"");

            VerifySuccessfulFieldParsing(parser, reader, "A");
            VerifySuccessfulFieldParsing(parser, reader, "B");
            VerifySuccessfulFieldParsing(parser, reader, "C ");
            VerifySuccessfulFieldParsing(parser, reader, "1");
            VerifySuccessfulFieldParsing(parser, reader, "2 ");
            VerifyFieldParsing(parser, reader, "3");

            Assert.AreEqual(reader.IsEOF, true);
        }
        public void ParsingBufferOverflowTest()
        {
            IFileReader reader = new FileReaderTestImpl("abcdefghjklmn", 100000);
            FieldParser parser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(",", "\r\n", "\"");
            RowParsingContextTestImpl rowParsingContext = new RowParsingContextTestImpl();

            try
            {
                parser.ParseNext(reader, rowParsingContext);
            }
            catch (ParsingBufferOverflowException ex)
            {
                Assert.AreEqual <int>(0, ex.ColumnIndex);
                throw ex;
            }
        }
        public void ParseDelimitedQualifiedFieldsTest()
        {
            IFileReader reader = FileReaderTest.GetReader("A,\"B,C\r\n1\",2,3\r\n1,2,3,\"4\"");
            FieldParser parser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(",", "\r\n", "\"");

            VerifySuccessfulFieldParsing(parser, reader, "A");
            VerifySuccessfulFieldParsing(parser, reader, "B,C\r\n1");
            VerifySuccessfulFieldParsing(parser, reader, "2");
            VerifySuccessfulLastRowFieldParsing(parser, reader, "3");
            VerifySuccessfulFieldParsing(parser, reader, "1");
            VerifySuccessfulFieldParsing(parser, reader, "2");
            VerifySuccessfulFieldParsing(parser, reader, "3");
            VerifyFieldParsing(parser, reader, "4");

            Assert.AreEqual(reader.IsEOF, true);
        }
 public void BadArgumentsTest8()
 {
     FieldParser parser = FieldParser.BuildParserWithTwoDelimitersAndQualifier(",", "\r\n", string.Empty);
 }