public void When_cell_contains_unquoted_text_before_quoted_text_it_should_fail() { // Arrange using DelimitedValuesReader reader = new DelimitedValuesReaderBuilder() .WithSingleColumnHeader() .WithoutRows() .WithDataLine("a" + DefaultTextQualifier + "b" + DefaultTextQualifier) .Build(); // Act // ReSharper disable once AccessToDisposedClosure Action action = () => _ = reader.Take(1).ToArray(); // Assert action.Should().ThrowExactly <DelimitedValuesParseException>().WithMessage("Text qualifier must be the first non-whitespace character of a cell."); }
public void When_lines_are_broken_using_carriage_returns_followed_by_with_line_feeds_it_should_report_the_correct_starting_line_number() { // Arrange const string lineBreaker = "\r\n"; const string cellValueWithLineBreak = "Cell with" + lineBreaker + "line break"; string rowWithLineBreak = DefaultTextQualifier + cellValueWithLineBreak + DefaultTextQualifier; using DelimitedValuesReader reader = new DelimitedValuesReaderBuilder() .WithSingleColumnHeader() .WithoutRows() .WithDataLine(rowWithLineBreak) .WithDataLine(rowWithLineBreak) .Build(); // Act _ = reader.Take(2).ToArray(); // Assert reader.LineNumber.Should().Be(4); }
public void When_lines_are_broken_using_carriage_returns_it_should_report_the_correct_starting_line_number() { // Arrange const string lineBreaker = "\r"; const string cellValueWithLineBreak = "Cell with" + lineBreaker + "line break"; string rowWithLineBreak = DefaultTextQualifier + cellValueWithLineBreak + DefaultTextQualifier; DelimitedValuesReader reader = new DelimitedValuesReaderBuilder() .WithSingleColumnHeader() .WithoutRows() .WithDataLine(rowWithLineBreak) .WithDataLine(rowWithLineBreak) .Build(); // Act // ReSharper disable once ReturnValueOfPureMethodIsNotUsed reader.Take(2).ToArray(); // Assert reader.LineNumber.Should().Be(4); }
public void When_cell_contains_unquoted_text_after_quoted_text_it_should_fail() { // Arrange DelimitedValuesReader reader = new DelimitedValuesReaderBuilder() .WithSingleColumnHeader() .WithoutRows() .WithDataLine(DefaultTextQualifier + "a" + DefaultTextQualifier + "b") .Build(); // Act // ReSharper disable once ReturnValueOfPureMethodIsNotUsed Action action = () => reader.Take(1).ToArray(); // Assert action.ShouldThrow<DelimitedValuesParseException>() .WithMessage("Text-qualified cell cannot contain non-whitespace after the closing text qualifier."); }