public void Ctor_NullPipeline_ThrowsArgumentNullException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            CreateElementsFactory <string> createElementsFactory = elements => elements;

            Assert.Throws <ArgumentNullException>("elementPipeline", () => new ManyToOneEnumerableMap <string>(cellValuesReader, null, createElementsFactory));
        }
        public void Ctor_NullCreateElementsFactory_ThrowsArgumentNullException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();

            Assert.Throws <ArgumentNullException>("createElementsFactory", () => new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, null));
        }
Beispiel #3
0
        public void Ctor_NullPipeline_ThrowsArgumentNullException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            CreateDictionaryFactory <string> createDictionaryFactory = elements => new Dictionary <string, string>();

            Assert.Throws <ArgumentNullException>("valuePipeline", () => new ManyToOneDictionaryMap <string>(cellValuesReader, null, createDictionaryFactory));
        }
        public void Ctor_ColumnNames()
        {
            var columnNames = new string[] { "ColumnName1", "ColumnName2" };
            var reader      = new MultipleColumnNamesValueReader(columnNames);

            Assert.Same(columnNames, reader.ColumnNames);
        }
Beispiel #5
0
        public void WithValueMap_MapReturnsNull_ThrowsArgumentNullException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var valuePipeline    = new ValuePipeline <string>();
            CreateDictionaryFactory <string> createDictionaryFactory = elements => new Dictionary <string, string>();
            var propertyMap = new ManyToOneDictionaryMap <string>(cellValuesReader, valuePipeline, createDictionaryFactory);

            Assert.Throws <ArgumentNullException>("valueMap", () => propertyMap.WithValueMap(e => null));
        }
        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 CellValuesReader_SetNull_ThrowsArgumentNullException()
        {
            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 <ArgumentNullException>("value", () => propertyMap.CellValuesReader = null);
        }
Beispiel #8
0
        public void Ctor_MemberInfo_IMultipleCellValuesReader_IValuePipeline_CreateDictionaryFactory()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var valuePipeline    = new ValuePipeline <string>();
            CreateDictionaryFactory <string> createDictionaryFactory = elements => new Dictionary <string, string>();
            var propertyMap = new ManyToOneDictionaryMap <string>(cellValuesReader, valuePipeline, createDictionaryFactory);

            Assert.NotNull(propertyMap.ValuePipeline);
        }
        public void WithColumnIndices_EmptyColumnIndices_ThrowsArgumentException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory).WithColumnNames("ColumnNames");

            Assert.Throws <ArgumentException>("columnIndices", () => propertyMap.WithColumnIndices(new int[0]));
            Assert.Throws <ArgumentException>("columnIndices", () => propertyMap.WithColumnIndices(new List <int>()));
        }
Beispiel #10
0
        public void WithColumnNames_EmptyColumnNames_ThrowsArgumentException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var valuePipeline    = new ValuePipeline <string>();
            CreateDictionaryFactory <string> createDictionaryFactory = elements => new Dictionary <string, string>();
            var propertyMap = new ManyToOneDictionaryMap <string>(cellValuesReader, valuePipeline, createDictionaryFactory).WithColumnNames("ColumnNames");

            Assert.Throws <ArgumentException>("columnNames", () => propertyMap.WithColumnNames(new string[0]));
            Assert.Throws <ArgumentException>("columnNames", () => propertyMap.WithColumnNames(new List <string>()));
        }
        public void Ctor_IMultipleCellValuesReader_IValuePipeline_CreateElementsFactory()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory);

            Assert.False(propertyMap.Optional);
            Assert.NotNull(propertyMap.ElementPipeline);
        }
Beispiel #12
0
        public void WithColumnNames_ParamsString_Success()
        {
            var        columnNames  = new string[] { "ColumnName1", "ColumnName2" };
            MemberInfo propertyInfo = typeof(TestClass).GetProperty(nameof(TestClass.Value));
            var        propertyMap  = new SubPropertyMap(propertyInfo).WithColumnNames("ColumnNames");

            Assert.Same(propertyMap, propertyMap.WithColumnNames(columnNames));

            MultipleColumnNamesValueReader valueReader = Assert.IsType <MultipleColumnNamesValueReader>(propertyMap.ColumnsReader);

            Assert.Same(columnNames, valueReader.ColumnNames);
        }
        public void WithSeperators_MultiMap_ThrowsExcelMappingException()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory).WithColumnNames("ColumnNames");

            Assert.Throws <ExcelMappingException>(() => propertyMap.WithSeparators(new char[0]));
            Assert.Throws <ExcelMappingException>(() => propertyMap.WithSeparators(new List <char>()));
            Assert.Throws <ExcelMappingException>(() => propertyMap.WithSeparators(new string[0]));
            Assert.Throws <ExcelMappingException>(() => propertyMap.WithSeparators(new List <string>()));
        }
        public void MakeOptional_HasMapper_ReturnsExpected()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory);

            Assert.False(propertyMap.Optional);
            Assert.Same(propertyMap, propertyMap.MakeOptional());
            Assert.True(propertyMap.Optional);
            Assert.Same(cellValuesReader, propertyMap.CellValuesReader);
        }
        public void WithColumnIndices_ParamsInt_Success()
        {
            var columnIndices    = new int[] { 0, 1 };
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory).WithColumnNames("ColumnNames");

            Assert.Same(propertyMap, propertyMap.WithColumnIndices(columnIndices));

            MultipleColumnIndicesValueReader reader = Assert.IsType <MultipleColumnIndicesValueReader>(propertyMap.CellValuesReader);

            Assert.Same(columnIndices, reader.ColumnIndices);
        }
Beispiel #16
0
        public void WithColumnNames_ParamsString_Success()
        {
            var columnNames      = new string[] { "ColumnName1", "ColumnName2" };
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var valuePipeline    = new ValuePipeline <string>();
            CreateDictionaryFactory <string> createDictionaryFactory = elements => new Dictionary <string, string>();
            var propertyMap = new ManyToOneDictionaryMap <string>(cellValuesReader, valuePipeline, createDictionaryFactory).WithColumnNames("ColumnNames");

            Assert.Same(propertyMap, propertyMap.WithColumnNames(columnNames));

            MultipleColumnNamesValueReader valueReader = Assert.IsType <MultipleColumnNamesValueReader>(propertyMap.CellValuesReader);

            Assert.Same(columnNames, valueReader.ColumnNames);
        }
        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);
        }
        public void CellValuesReader_SetValid_GetReturnsExpected(IMultipleCellValuesReader value)
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory)
            {
                CellValuesReader = value
            };

            Assert.Same(value, propertyMap.CellValuesReader);

            // Set same.
            propertyMap.CellValuesReader = value;
            Assert.Same(value, propertyMap.CellValuesReader);
        }
        public void WithColumnNames_IEnumerableString_Success()
        {
            var columnNames = new List <string> {
                "ColumnName1", "ColumnName2"
            };
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory).WithColumnNames("ColumnNames");

            Assert.Same(propertyMap, propertyMap.WithColumnNames((IEnumerable <string>)columnNames));

            MultipleColumnNamesValueReader valueReader = Assert.IsType <MultipleColumnNamesValueReader>(propertyMap.CellValuesReader);

            Assert.Equal(columnNames, valueReader.ColumnNames);
        }
        public void WithElementMap_ValidMap_Success()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory);

            var newElementPipeline = new ValuePipeline <string>();

            Assert.Same(propertyMap, propertyMap.WithElementMap(e =>
            {
                Assert.Same(e, propertyMap.ElementPipeline);
                return(newElementPipeline);
            }));
            Assert.Same(newElementPipeline, propertyMap.ElementPipeline);
        }
Beispiel #21
0
        public void WithValueMap_ValidMap_Success()
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var valuePipeline    = new ValuePipeline <string>();
            CreateDictionaryFactory <string> createDictionaryFactory = elements => new Dictionary <string, string>();
            var propertyMap = new ManyToOneDictionaryMap <string>(cellValuesReader, valuePipeline, createDictionaryFactory);

            var newValuePipeline = new ValuePipeline <string>();

            Assert.Same(propertyMap, propertyMap.WithValueMap(e =>
            {
                Assert.Same(e, propertyMap.ValuePipeline);
                return(newValuePipeline);
            }));
            Assert.Same(newValuePipeline, propertyMap.ValuePipeline);
        }
        public void Optional_Set_GetReturnsExpected(bool value)
        {
            var cellValuesReader = new MultipleColumnNamesValueReader("Column");
            var elementPipeline  = new ValuePipeline <string>();
            CreateElementsFactory <string> createElementsFactory = elements => elements;
            var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory)
            {
                Optional = value
            };

            Assert.Equal(value, propertyMap.Optional);

            // Set same.
            propertyMap.Optional = value;
            Assert.Equal(value, propertyMap.Optional);

            // Set different.
            propertyMap.Optional = !value;
            Assert.Equal(!value, propertyMap.Optional);
        }