Exemplo n.º 1
0
        public void Model_VerifyPropertyChangeErrorTestCase()
        {
            string text = "error";

            GivenInitViewModel()
            .AndAsync("navigate page", async viewModel => await NavigateAndWaitLoadPageAsync <SetPropertyPage, SetPropertyViewModel>(viewModel))
            .And("Subscribe to event", page =>
            {
                SetPropertyModel model      = page.DataContext.HasTypeAndGetValue <SetPropertyViewModel>().Model;
                model.VerifyPropertyChange += (sender, e) => e.AddError(new MvvmFrameErrorDetail {
                    Code = "InvalidData"
                });
                return(page);
            })
            .When("Change text", page =>
            {
                page.tbModel.Text = text;
                return(page.DataContext.HasTypeAndGetValue <SetPropertyViewModel>().Model);
            })
            .Then("Check result", model =>
            {
                Assert.IsNull(model.TextTest, "text must be null");
                Assert.AreEqual(1, model.OnErrorsCallCounter, $"method '{nameof(SetPropertyModel.OnErrors)}' should be called");
                Assert.IsNotNull(model.Details, "collection should not be empty");
                Assert.AreEqual(1, model.Details.Count, "there must be one item in the collection");
                MvvmFrameErrorDetail detail = model.Details[0];
                Assert.AreEqual("InvalidData", detail.Code, "the error code must be different");
            })
            .RunWindow(Timeouts.Second.Five);
        }
Exemplo n.º 2
0
        public void Model_VerifyPropertyChangeDisableTestCase()
        {
            string text             = "Is model text";
            int    eventCallCounter = 0;

            GivenInitViewModel()
            .AndAsync("navigate page", async viewModel => await NavigateAndWaitLoadPageAsync <SetPropertyPage, SetPropertyViewModel>(viewModel))
            .And("Subscribe to event", page =>
            {
                SetPropertyModel model      = page.DataContext.HasTypeAndGetValue <SetPropertyViewModel>().Model;
                model.VerifyPropertyChange += (sender, e) => eventCallCounter++;
                return(page);
            })
            .When("Change text", page =>
            {
                SetPropertyModel model = page.DataContext.HasTypeAndGetValue <SetPropertyViewModel>().Model;
                model.ModelOptions.UseVerifyPropertyChange = false;
                page.tbModel.Text = text;
                return(model);
            })
            .Then("Check result", model =>
            {
                Assert.AreEqual(text, model.TextTest, "texts must match");
                Assert.AreEqual(0, eventCallCounter, $"method '{nameof(SetPropertyModel.VerifyPropertyChange)}' not should be called");
            })
            .RunWindow(Timeouts.Second.Five);
        }