public void ParseCorrectlyHandleProcessingOfAdditionalColumns(string input,
     AdditionalColumnsProcessing
     additionalColumnsProcessing,
     int expectedNumberOfColumns,
     string expectedLastColumn)
 {
     IRowParser rowParser = CreateSUT(expectedNumberOfColumns, additionalColumnsProcessing,
                                      new SplitTransformer(TAB));
     ChunkContainer columns = rowParser.Parse(input);
     Assert.AreEqual(expectedLastColumn, columns[expectedNumberOfColumns - 1]);
 }
        public void ParseReturnsTheExpectedNumberOfColumns(string input,
            AdditionalColumnsProcessing additionalColumnsProcessing,
            int expectedNumberOfColumns)
        {
            IRowParser rowParser = CreateSUT(expectedNumberOfColumns, additionalColumnsProcessing,
                                             new SplitTransformer(TAB));

            ChunkContainer columns = rowParser.Parse(input);

            Assert.AreEqual(expectedNumberOfColumns, columns.Count);
        }
        public RowParser(int numberOfColumns, AdditionalColumnsProcessing additionalColumnsProcessing,
            ITransformer columnExploder)
        {
            if (columnExploder == null)
            {
                throw new ArgumentNullException("columnExploder");
            }

            _numberOfColumns = numberOfColumns;
            _additionalColumnsProcessing = additionalColumnsProcessing;
            _columnExploder = columnExploder;
        }
 private static IRowParser CreateSUT(int numberOfColumns, AdditionalColumnsProcessing additionalColumnsProcessing,
     ITransformer columnExploder)
 {
     return new RowParser(numberOfColumns, additionalColumnsProcessing, columnExploder);
 }