public void WithColumnIndex_NegativeColumnIndex_ThrowsArgumentOutOfRangeException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory);

            Assert.Throws <ArgumentOutOfRangeException>("columnIndex", () => propertyMap.WithColumnIndex(-1));
        }
        public void WithColumnIndex_MultiColumnIndex_Success(int columnIndex)
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory).WithColumnNames("ColumnName");

            Assert.Same(propertyMap, propertyMap.WithColumnIndex(columnIndex));

            CharSplitCellValueReader valueReader = Assert.IsType <CharSplitCellValueReader>(propertyMap.CellValuesReader);
            ColumnIndexValueReader   innerReader = Assert.IsType <ColumnIndexValueReader>(valueReader.CellReader);

            Assert.Equal(columnIndex, innerReader.ColumnIndex);
        }