public void Ctor_Default() { var pipeline = new ValuePipeline(); Assert.Empty(pipeline.CellValueMappers); Assert.Empty(pipeline.CellValueTransformers); }
public void Ctor_NullCellValuesReader_ThrowsArgumentNullException() { var elementPipeline = new ValuePipeline <string>(); CreateElementsFactory <string> createElementsFactory = elements => elements; Assert.Throws <ArgumentNullException>("cellValuesReader", () => new ManyToOneEnumerableMap <string>(null, elementPipeline, 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)); }
public void Ctor_NullCellValuesReader_ThrowsArgumentNullException() { var valuePipeline = new ValuePipeline <string>(); CreateDictionaryFactory <string> createDictionaryFactory = elements => new Dictionary <string, string>(); Assert.Throws <ArgumentNullException>("cellValuesReader", () => new ManyToOneDictionaryMap <string>(null, valuePipeline, createDictionaryFactory)); }
public static void SetValue(object instance, MutableMember member, object value) { var perspexProperty = FindPerspexProperty(instance, member); if (value is IBinding) { SetBinding(instance, member, perspexProperty, (IBinding)value); } else if (perspexProperty != null) { ((PerspexObject)instance).SetValue(perspexProperty, value); } else if (instance is Setter && member.Name == "Value") { // TODO: Make this more generic somehow. var setter = (Setter)instance; var targetType = setter.Property.PropertyType; var valuePipeline = new ValuePipeline(member.TypeRepository, null); var xamlType = member.TypeRepository.GetByType(targetType); SetClrProperty(instance, member, valuePipeline.ConvertValueIfNecessary(value, xamlType)); } else { SetClrProperty(instance, member, value); } }
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 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 RemoveCellValueMapper_Index_Success() { var pipeline = new ValuePipeline(); pipeline.AddCellValueMapper(new BoolMapper()); pipeline.RemoveCellValueMapper(0); Assert.Empty(pipeline.CellValueMappers); }
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); }
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 AddCellValueTransformer_ValidTransformer_Success() { var pipeline = new ValuePipeline(); var transformer1 = new TrimCellValueTransformer(); var transformer2 = new TrimCellValueTransformer(); pipeline.AddCellValueTransformer(transformer1); pipeline.AddCellValueTransformer(transformer2); Assert.Equal(new ICellValueTransformer[] { transformer1, transformer2 }, pipeline.CellValueTransformers); }
public void AddCellValueMapper_ValidItem_Success() { var pipeline = new ValuePipeline(); var item1 = new BoolMapper(); var item2 = new BoolMapper(); pipeline.AddCellValueMapper(item1); pipeline.AddCellValueMapper(item2); Assert.Equal(new ICellValueMapper[] { item1, item2 }, pipeline.CellValueMappers); }
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); }
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>())); }
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 WithSeparators_EmptySeparators_ThrowsArgumentException() { var cellValuesReader = new StringSplitCellValueReader(new ColumnNameValueReader("Column")); var elementPipeline = new ValuePipeline <string>(); CreateElementsFactory <string> createElementsFactory = elements => elements; var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory); Assert.Throws <ArgumentException>("value", () => propertyMap.WithSeparators(new char[0])); Assert.Throws <ArgumentException>("value", () => propertyMap.WithSeparators(new List <char>())); Assert.Throws <ArgumentException>("value", () => propertyMap.WithSeparators(new string[0])); Assert.Throws <ArgumentException>("value", () => propertyMap.WithSeparators(new List <string>())); }
public void InvalidFallback_Set_GetReturnsExpected() { var pipeline = new ValuePipeline(); var fallback = new FixedValueFallback(10); pipeline.InvalidFallback = fallback; Assert.Same(fallback, pipeline.InvalidFallback); pipeline.InvalidFallback = null; Assert.Null(pipeline.InvalidFallback); }
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 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 WithSeparators_IEnumerableString_Success(IEnumerable <string> separators) { var cellValuesReader = new StringSplitCellValueReader(new ColumnNameValueReader("Column")); var elementPipeline = new ValuePipeline <string>(); CreateElementsFactory <string> createElementsFactory = elements => elements; var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory); Assert.Same(propertyMap, propertyMap.WithSeparators(separators)); StringSplitCellValueReader valueReader = Assert.IsType <StringSplitCellValueReader>(propertyMap.CellValuesReader); Assert.Equal(separators, valueReader.Separators); }
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); }
internal static bool TryCreatePrimitivePipeline <T>(FallbackStrategy emptyValueStrategy, out ValuePipeline <T> pipeline) { if (!TryGetWellKnownMap(typeof(T), emptyValueStrategy, out ICellValueMapper mapper, out IFallbackItem emptyFallback, out IFallbackItem invalidFallback)) { pipeline = null; return(false); } pipeline = new ValuePipeline <T>(); pipeline.AddCellValueMapper(mapper); pipeline.EmptyFallback = emptyFallback; pipeline.InvalidFallback = invalidFallback; return(true); }
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 WithColumnName_SplitValidColumnName_Success() { var cellValuesReader = new CharSplitCellValueReader(new ColumnNameValueReader("Column")); var elementPipeline = new ValuePipeline <string>(); CreateElementsFactory <string> createElementsFactory = elements => elements; var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory); Assert.Same(propertyMap, propertyMap.WithColumnName("ColumnName")); CharSplitCellValueReader valueReader = Assert.IsType <CharSplitCellValueReader>(propertyMap.CellValuesReader); ColumnNameValueReader innerReader = Assert.IsType <ColumnNameValueReader>(valueReader.CellReader); Assert.Equal("ColumnName", innerReader.ColumnName); }
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); }
public void WithSeparators_ParamsChar_Success(IEnumerable <char> separators) { char[] separatorsArray = separators.ToArray(); var cellValuesReader = new StringSplitCellValueReader(new ColumnNameValueReader("Column")); var elementPipeline = new ValuePipeline <string>(); CreateElementsFactory <string> createElementsFactory = elements => elements; var propertyMap = new ManyToOneEnumerableMap <string>(cellValuesReader, elementPipeline, createElementsFactory); Assert.Same(propertyMap, propertyMap.WithSeparators(separatorsArray)); CharSplitCellValueReader valueReader = Assert.IsType <CharSplitCellValueReader>(propertyMap.CellValuesReader); Assert.Same(separatorsArray, valueReader.Separators); }
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); }
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 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 ValueCommand(SuperObjectAssembler superObjectAssembler, string value) : base(superObjectAssembler) { this.value = value; ValuePipeLine = new ValuePipeline(superObjectAssembler.WiringContext); }
public ValueCommand(ObjectAssembler objectAssembler, ITopDownValueContext topDownValueContext, string value) : base(objectAssembler) { this.value = value; ValuePipeLine = new ValuePipeline(objectAssembler.WiringContext.TypeContext, topDownValueContext); }
public ValueCommand(StateCommuter stateCommuter, ITypeRepository typeSource, ITopDownValueContext topDownValueContext, string value) : base(stateCommuter) { this.value = value; ValuePipeLine = new ValuePipeline(typeSource, topDownValueContext); }