public void Should_Handle_DataValidation() { var data = new Class1 { DoubleValue = 5.6 }; var converter = new Mock<IValueConverter>(); var target = new BindingExpression(new ExpressionObserver(data, "DoubleValue", true), typeof(string)); var result = new List<object>(); target.Subscribe(x => result.Add(x)); target.OnNext(1.2); target.OnNext("3.4"); target.OnNext("bar"); Assert.Equal( new[] { new BindingNotification("5.6"), new BindingNotification("1.2"), new BindingNotification("3.4"), new BindingNotification( new InvalidCastException("'bar' is not a valid number."), BindingErrorType.Error) }, result); }
public void Should_Pass_ConverterParameter_To_Convert() { var data = new Class1 { DoubleValue = 5.6 }; var converter = new Mock<IValueConverter>(); var target = new BindingExpression( new ExpressionObserver(data, "DoubleValue"), typeof(string), converter.Object, converterParameter: "foo"); target.Subscribe(_ => { }); converter.Verify(x => x.Convert(5.6, typeof(string), "foo", CultureInfo.CurrentUICulture)); }