public void ViewModelValidator_Child_IValidatableObject() { var testViewModel = new TestViewModel5() { Child = new TestViewModel5Child() { IsChecked = true } }; var validator = CreateValidator(); var results = validator.ValidateViewModel(testViewModel).OrderBy(n => n.PropertyPath).ToList(); Assert.AreEqual(1, results.Count); Assert.AreEqual("Child().ConditionalRequired", results[0].PropertyPath); }
public void Test_MethodInvoker_Basic() { var viewModel5 = new TestViewModel5(); var canMethodInvoker = new MethodInvoker(new BindContext(viewModel5, "TestViewModel"), "CanAddAge", null); var methodInvoker = new MethodInvoker(new BindContext(viewModel5, "TestViewModel"), "AddAge", null); bool value = canMethodInvoker.CanInvoke(); Assert.IsFalse(value); methodInvoker.Invoke(); viewModel5.TestViewModel = new TestViewModel(); value = canMethodInvoker.CanInvoke(); Assert.IsTrue(value); methodInvoker.Invoke(); Assert.AreEqual(1, viewModel5.TestViewModel.Age); var canMethodInvoker2 = new MethodInvoker(new BindContext(viewModel5, "TestViewModel"), "AddAge", null); MissingMemberException exception = null; try { canMethodInvoker2.CanInvoke(); } catch (MissingMemberException e) { exception = e; } Assert.IsNotNull(exception); var vm = new TestViewModel(); var canMethodInvoker3 = new MethodInvoker(new BindContext(viewModel5, "TestViewModel"), "CanSetAge", new[] { new BindContext(vm, "Age") }); var methodInvoker2 = new MethodInvoker(new BindContext(viewModel5, "TestViewModel"), "SetAge", new[] { new BindContext(vm, "Age") }); Assert.IsTrue(canMethodInvoker3.CanInvoke()); vm.Age = 6; Assert.AreNotEqual(6, viewModel5.TestViewModel.Age); methodInvoker2.Invoke(); Assert.AreEqual(6, viewModel5.TestViewModel.Age); }
public void Test_BindingEngine_MethodBinding_Expression() { var viewModel = new TestViewModel5(); var button = new Button(); BindingEngine.SetMethodBinding(button, null, viewModel, o => o.TestViewModel) .Initialize <WeakMethodBinding>() .AttachSourceMethod("AddAge", null) .AttachSourceCanInvokeMethod("CanAddAge", null) .AttachTargetEvent("Click"); viewModel.TestViewModel = new TestViewModel(); Assert.AreEqual(0, viewModel.TestViewModel.Age); button.PerformClick(); Assert.AreEqual(1, viewModel.TestViewModel.Age); }
public void DefaultViewModelSerializer_SignedAndEncryptedValue_NullableInt_NullValue() { var oldViewModel = new TestViewModel5() { ProtectedNullable = null }; context.ViewModel = oldViewModel; serializer.BuildViewModel(context); var result = context.GetSerializedViewModel(); result = UnwrapSerializedViewModel(result); result = WrapSerializedViewModel(result); var newViewModel = new TestViewModel5(); context.ViewModel = newViewModel; serializer.PopulateViewModel(context, result); Assert.AreEqual(oldViewModel.ProtectedNullable, newViewModel.ProtectedNullable); }