コード例 #1
0
        public void CellValuesReader_SetNull_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>("value", () => propertyMap.CellValuesReader = null);
        }
コード例 #2
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);
        }
コード例 #3
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>()));
        }
コード例 #4
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);
        }
コード例 #5
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);
        }
コード例 #6
0
        public void CellValuesReader_SetValid_GetReturnsExpected(IMultipleCellValuesReader value)
        {
            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)
            {
                CellValuesReader = value
            };

            Assert.Same(value, propertyMap.CellValuesReader);

            // Set same.
            propertyMap.CellValuesReader = value;
            Assert.Same(value, propertyMap.CellValuesReader);
        }
コード例 #7
0
        internal static bool TryCreateGenericDictionaryMap <TKey, TValue>(Type memberType, FallbackStrategy emptyValueStrategy, out ManyToOneDictionaryMap <TValue> map)
        {
            if (!TryCreatePrimitivePipeline <TValue>(emptyValueStrategy, out ValuePipeline <TValue> valuePipeline))
            {
                map = null;
                return(false);
            }

            if (!TryGetCreateDictionaryFactory <TKey, TValue>(memberType, out CreateDictionaryFactory <TValue> factory))
            {
                map = null;
                return(false);
            }

            // Default to all columns.
            var defaultReader = new AllColumnNamesValueReader();

            map = new ManyToOneDictionaryMap <TValue>(defaultReader, valuePipeline, factory);
            return(true);
        }