public void GetProperty_InvalidStringValue_ReturnsInvalid(EnumMapper item, string stringValue) { object value = 1; PropertyMapperResultType result = item.MapCellValue(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.Invalid, result); Assert.Equal(1, value); }
public void GetProperty_ValidStringValue_ReturnsSuccess(EnumMapper item, string stringValue, Enum expected) { object value = null; PropertyMapperResultType result = item.MapCellValue(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.Success, result); Assert.Equal(expected, value); }
public void GetProperty_InvalidStringValue_ReturnsInvalid(string stringValue) { var item = new UriMapper(); object value = 1; PropertyMapperResultType result = item.GetProperty(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.Invalid, result); Assert.Equal(1, value); }
public void GetProperty_ValidStringValue_ReturnsSuccess(string stringValue, Uri expected) { var item = new UriMapper(); object value = null; PropertyMapperResultType result = item.GetProperty(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.Success, result); Assert.Equal(expected, value); }
public void GetProperty_InvalidStringValue_ReturnsInvalid(Type type, string stringValue) { var item = new ChangeTypeMapper(type); object value = 1; PropertyMapperResultType result = item.MapCellValue(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.Invalid, result); Assert.Equal(1, value); }
public void GetProperty_ValidStringValue_ReturnsSuccess(Type type, string stringValue, object expected) { var item = new ChangeTypeMapper(type); object value = 0; PropertyMapperResultType result = item.MapCellValue(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.Success, result); Assert.Equal(expected, value); }
public void GetProperty_Invoke_ReturnsBegan(string stringValue) { var item = new StringMapper(); object value = 1; PropertyMapperResultType result = item.MapCellValue(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.SuccessIfNoOtherSuccess, result); Assert.Same(stringValue, value); }
public void GetProperty_ValidStringValue_ReturnsSuccess(string stringValue, string[] formats, DateTimeStyles style, DateTime expected) { var item = new DateTimeMapper { Formats = formats, Style = style }; object value = null; PropertyMapperResultType result = item.MapCellValue(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(PropertyMapperResultType.Success, result); Assert.Equal(expected, value); }
public void GetProperty_ValidStringValue_ReturnsSuccess(string stringValue, PropertyMapperResultType expectedType, object expectedValue) { var mapping = new Dictionary <string, object> { { "key", "value" }, { "KEY2", 10 } }; var comparer = StringComparer.OrdinalIgnoreCase; var item = new DictionaryMapper <object>(mapping, comparer); object value = null; PropertyMapperResultType result = item.GetProperty(new ReadCellValueResult(-1, stringValue), ref value); Assert.Equal(expectedType, result); Assert.Equal(expectedValue, value); }
public void GetProperty_ValidStringValue_ReturnsSuccess() { ConvertUsingMapperDelegate converter = (ReadCellValueResult readResult, ref object readValue) => { Assert.Equal(-1, readResult.ColumnIndex); Assert.Equal("string", readResult.StringValue); readValue = 10; return(PropertyMapperResultType.Success); }; var item = new ConvertUsingMapper(converter); object value = null; PropertyMapperResultType result = item.GetProperty(new ReadCellValueResult(-1, "string"), ref value); Assert.Equal(PropertyMapperResultType.Success, result); Assert.Equal(10, value); }
public void WithConverter_InvalidConverter_ReturnsExpected() { ConvertUsingSimpleMapperDelegate <string> converter = stringValue => { Assert.Equal("stringValue", stringValue); throw new NotSupportedException(); }; SingleExcelPropertyMap <string> propertyMap = Map(t => t.Value); Assert.Same(propertyMap, propertyMap.WithConverter(converter)); ConvertUsingMapper item = propertyMap.CellValueMappers.OfType <ConvertUsingMapper>().Single(); object value = 1; PropertyMapperResultType result = item.Converter(new ReadCellValueResult(-1, "stringValue"), ref value); Assert.Equal(PropertyMapperResultType.Invalid, result); Assert.Equal(1, value); }
public void WithConverter_SuccessConverter_ReturnsExpected() { ConvertUsingSimpleMapperDelegate <string> converter = stringValue => { Assert.Equal("stringValue", stringValue); return("abc"); }; SingleExcelPropertyMap <string> propertyMap = Map(t => t.Value); Assert.Same(propertyMap, propertyMap.WithConverter(converter)); ConvertUsingMapper item = propertyMap.CellValueMappers.OfType <ConvertUsingMapper>().Single(); object value = null; PropertyMapperResultType result = item.Converter(new ReadCellValueResult(-1, "stringValue"), ref value); Assert.Equal(PropertyMapperResultType.Success, result); Assert.Equal("abc", value); }
internal static object GetPropertyValue(IValuePipeline pipeline, ExcelSheet sheet, int rowIndex, IExcelDataReader reader, ReadCellValueResult readResult, MemberInfo member) { foreach (ICellValueTransformer transformer in pipeline.CellValueTransformers) { readResult = new ReadCellValueResult(readResult.ColumnIndex, transformer.TransformStringValue(sheet, rowIndex, readResult)); } if (string.IsNullOrEmpty(readResult.StringValue) && pipeline.EmptyFallback != null) { return(pipeline.EmptyFallback.PerformFallback(sheet, rowIndex, readResult, member)); } PropertyMapperResultType resultType = PropertyMapperResultType.Success; object value = null; foreach (ICellValueMapper mappingItem in pipeline.CellValueMappers) { PropertyMapperResultType newResultType = mappingItem.MapCellValue(readResult, ref value); if (newResultType == PropertyMapperResultType.Success) { return(value); } if (newResultType != PropertyMapperResultType.Continue) { resultType = newResultType; } } if (resultType != PropertyMapperResultType.Success && resultType != PropertyMapperResultType.SuccessIfNoOtherSuccess && pipeline.InvalidFallback != null) { return(pipeline.InvalidFallback.PerformFallback(sheet, rowIndex, readResult, member)); } return(value); }