public void CommandResolver_Valid_SimpleTest() { var path = new[] { "A[0]" }; var command = "Test(StringToPass, _parent.NumberToPass)"; var testObject = new { A = new[] { new TestA() { StringToPass = "******" } }, NumberToPass = 16 }; var viewRoot = new RedwoodView() { DataContext = testObject }; viewRoot.SetBinding(Validate.TargetProperty, new ValueBindingExpression("_root")); var placeholder = new HtmlGenericControl("div"); placeholder.SetBinding(RedwoodBindableControl.DataContextProperty, new ValueBindingExpression(path[0])); viewRoot.Children.Add(placeholder); var button = new Button(); button.SetBinding(ButtonBase.ClickProperty, new CommandBindingExpression(command)); placeholder.Children.Add(button); var resolver = new CommandResolver(); var context = new RedwoodRequestContext() { ViewModel = testObject }; context.ModelState.ValidationTargetPath = KnockoutHelper.GetValidationTargetExpression(button, true); resolver.GetFunction(viewRoot, context, path, command).GetAction()(); Assert.AreEqual(testObject.NumberToPass, testObject.A[0].ResultInt); Assert.AreEqual(testObject.A[0].ResultString, testObject.A[0].ResultString); }
public void CommandResolver_CannotCallSetter() { var testObject = new TestA() { StringToPass = "******" }; var viewRoot = new RedwoodView() { DataContext = testObject }; viewRoot.SetBinding(Validate.TargetProperty, new ValueBindingExpression("_root")); viewRoot.SetBinding(RedwoodProperty.Register<Action, RedwoodView>("Test"), new CommandBindingExpression("set_StringToPass(StringToPass)")); var path = new string[] { }; var command = "set_StringToPass(StringToPass)"; var resolver = new CommandResolver(); var context = new RedwoodRequestContext() { ViewModel = testObject }; resolver.GetFunction(viewRoot, context, path, command).GetAction()(); }