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); }
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 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 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 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 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); }
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); }