Ejemplo n.º 1
0
        public async Task Post_Edit_with_invalid_modelState()
        {
            var form = new PayeeEditorForm();

            controller.ModelState.AddModelError("somekey", "some error");

            var result = await controller.Edit(form) as ViewResult;

            Assert.AreEqual(result.Model, form, "it should redisplay the form");

            mediator.DidNotReceive()
            .SendAsync(Arg.Any <AddOrEditPayeeCommand>())
            .IgnoreAwaitForNSubstituteAssertion();
        }
Ejemplo n.º 2
0
        public async Task Get_Create()
        {
            var from = new PayeeEditorForm();

            mediator.SendAsync(Arg.Any <PayeeEditorFormQuery>())
            .Returns(Task.FromResult(from));

            var result = await controller.Create() as ViewResult;

            Assert.AreEqual(result.Model, from);

            mediator.Received()
            .SendAsync(Arg.Any <PayeeEditorFormQuery>())
            .IgnoreAwaitForNSubstituteAssertion();
        }
Ejemplo n.º 3
0
        public async Task Post_Edit_with_vaid_model_state()
        {
            var form    = new PayeeEditorForm();
            var payeeId = 42;

            mediator.SendAsync(Arg.Any <AddOrEditPayeeCommand>())
            .Returns(Task.FromResult(new SuccessResult(payeeId) as ICommandResult));

            var result = await controller.Edit(form) as RedirectToRouteResult;

            Assert.IsNotNull(result);

            Assert.AreEqual(result.RouteValues["action"], "Show", "it should redirect to the show page");
            Assert.AreEqual(result.RouteValues["id"], payeeId, "it should redirect to the generated client id");
        }
Ejemplo n.º 4
0
        public async Task Get_Edit_with_valid_id()
        {
            var id   = new int?(42);
            var form = new PayeeEditorForm();

            mediator.SendAsync(Arg.Any <PayeeEditorFormQuery>())
            .Returns(Task.FromResult(form));

            var result = await controller.Edit(id) as ViewResult;

            Assert.AreEqual(result.Model, form);

            mediator.Received()
            .SendAsync(Arg.Is <PayeeEditorFormQuery>(q => q.PayeeId == id))
            .IgnoreAwaitForNSubstituteAssertion();
        }
Ejemplo n.º 5
0
        public async Task <ActionResult> Edit(PayeeEditorForm form)
        {
            Logger.Trace("Edit::Post::{0}", form.PayeeId);

            if (ModelState.IsValid)
            {
                var result = await mediator.SendAsync(new AddOrEditPayeeCommand(form, ModelState));

                if (result.IsSuccess)
                {
                    return(RedirectToAction("Show", new { Id = result.Result }));
                }

                ModelState.AddModelError("", result.Result.ToString());
            }
            return(View(form));
        }
Ejemplo n.º 6
0
        public async Task Post_Edit_with_vaid_model_state_failure()
        {
            var form          = new PayeeEditorForm();
            var failureMesage = "some error text";

            mediator.SendAsync(Arg.Any <AddOrEditPayeeCommand>())
            .Returns(Task.FromResult(new FailureResult(failureMesage) as ICommandResult));

            var result = await controller.Edit(form) as ViewResult;

            Assert.AreEqual(result.Model, form);

            Assert.IsFalse(controller.ModelState.IsValid);

            Assert.IsTrue(controller.ModelState[""]
                          .Errors.Any(e => e.ErrorMessage.Equals(failureMesage)));
        }