public void FailsIfFileNotFound() { string fileName = Path.GetTempFileName(); File.Delete(fileName); DelimitedFieldParser parser = new DelimitedFieldParser(fileName); }
public void CanDetectEndOfData() { using (StringReader reader = new StringReader(string.Empty)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { Assert.IsTrue(parser.EndOfFile); } } }
public void DelimitersCannotBeNull() { using (StringReader reader = new StringReader(string.Empty)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.SetDelimiters(null); } } }
public void CanParseSingleField() { string text = "record 1"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { Assert.AreEqual("record 1", parser.ReadFields().ToString(string.Empty)); } } }
public void LastFieldIsEmpty() { string text = "a,bb,ccc,"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { Assert.AreEqual("a|bb|ccc|", parser.ReadFields().ToString("|")); } } }
public void MultipleDelimiters() { string text = "a bb\tccc\tdddd"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.SetDelimiters(' ', '\t'); Assert.AreEqual("a:bb:ccc:dddd", parser.ReadFields().ToString(":")); } } }
public void FailsIfExpectedDelimiterNotFound() { string text = "a,\"bb\"ccc"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.HasFieldsEnclosedInQuotes = true; parser.ReadFields(); } } }
public void FailsIfUnmatchedQuotes() { string text = "\"aaa"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.HasFieldsEnclosedInQuotes = true; Assert.AreEqual("aaa", parser.ReadFields().ToString("|")); } } }
public void QuotedFieldIsEmpty() { string text = "a,bb,ccc,\"\",eeee"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.HasFieldsEnclosedInQuotes = true; Assert.AreEqual("a|bb|ccc||eeee", parser.ReadFields().ToString("|")); } } }
public void CanParseQuotedFields() { string text = "a,\"bb\",ccc"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.HasFieldsEnclosedInQuotes = true; Assert.AreEqual("a|bb|ccc", parser.ReadFields().ToString("|")); } } }
public void CanSqueezeDelimiters() { string text = "a bb ccc dddd"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.SetDelimiters(' '); parser.SqueezeDelimiters = true; Assert.AreEqual("a:bb:ccc:dddd", parser.ReadFields().ToString(":")); } } }
public void DefaultPropertiesTest() { using (StringReader reader = new StringReader(string.Empty)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { Assert.IsFalse(parser.HasFieldsEnclosedInQuotes); Assert.IsFalse(parser.IgnoreBlankLines); Assert.IsFalse(parser.SqueezeDelimiters); Assert.IsFalse(parser.TrimWhiteSpace); Assert.AreEqual(0, parser.LineNumber); } } }
public void CanTreatQuotesAsNormalChars() { string text = "Michael \"Magic\" Jordan"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.HasFieldsEnclosedInQuotes = false; TextFields fields = parser.ReadFields(); Assert.AreEqual(1, fields.Count); Assert.AreEqual(text, fields[0]); } } }
public void CanParseMultipleFields() { string newLine = "\r\n"; string text = "a;bb;ccc;dddd" + newLine + "111;22;3"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.SetDelimiters(';'); Assert.AreEqual("a:bb:ccc:dddd", parser.ReadFields().ToString(":")); Assert.AreEqual("111:22:3", parser.ReadFields().ToString(":")); } } }
public void CanHandleUnixStyleNewLine() { string newLine = "\n"; string text = "a;bb;ccc;dddd" + newLine + "e;ff;ggg;hhhh"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.SetDelimiters(';'); Assert.AreEqual("a:bb:ccc:dddd", parser.ReadFields().ToString(":")); Assert.AreEqual("e:ff:ggg:hhhh", parser.ReadFields().ToString(":")); } } }
public void CanSkipCommentedLines() { string newLine = "\r\n"; string text = "#Comment line" + newLine + "a;bb;ccc;dddd"; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.SetDelimiters(';'); parser.SetCommentTokens("#"); Assert.AreEqual("a:bb:ccc:dddd", parser.ReadFields().ToString(":")); } } }
public void DelimitersTest() { using (StringReader reader = new StringReader(string.Empty)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { char[] delimiters = { ',', ';' }; parser.SetDelimiters(delimiters); delimiters[0] = '\t'; Assert.AreNotEqual('\t', parser.GetDelimiters()[0]); } } }
public void ReaderRemainsOpen() { string text = "record 1"; StringReader reader = new StringReader(text); DelimitedFieldParser parser = new DelimitedFieldParser(reader); parser.ReadToEnd(); parser.Close(); // Not owned reader should remain open after closing parser. Assert.AreEqual(-1, reader.Peek()); reader.Close(); }
public void CanTrimWhiteSpace() { string newLine = "\r\n"; string text = "a;bb ; ccc; dddd " + newLine; using (StringReader reader = new StringReader(text)) { using (DelimitedFieldParser parser = new DelimitedFieldParser(reader)) { parser.SetDelimiters(';'); parser.TrimWhiteSpace = true; Assert.AreEqual("a:bb:ccc:dddd", parser.ReadFields().ToString(":")); } } }
public void CanReadFromFile() { string textFile = Path.GetTempFileName(); try { using (StreamWriter writer = new StreamWriter(textFile, false)) { writer.WriteLine("a,bb,ccc,dddd"); } using (DelimitedFieldParser parser = new DelimitedFieldParser(textFile)) { parser.SetDelimiters(','); Assert.AreEqual("a:bb:ccc:dddd", parser.ReadFields().ToString(":")); } } finally { File.Delete(textFile); } }