public void TheUserIsRedirectedToTheWorkoutSummary() { var invoker = new Mock<ICommandInvoker>(); var controller = new AddController(invoker.Object, null); var input = new AddCardioInputModel { ExerciseId = 1, Level = 1, Duration = 45, Notes = string.Empty }; var result = (RedirectToRouteResult)controller.Cardio(input); result.RouteValues["action"].ShouldEqual("Index"); }
public void AnAddCommandIsSubmitted() { var invoker = new Mock<ICommandInvoker>(); var controller = new AddController(invoker.Object, null); var input = new AddCardioInputModel {ExerciseId = 1, Level = 1, Duration = 45, Notes = string.Empty}; var result = controller.Cardio(input); invoker.Verify(i => i.Execute(It.Is<AddCardioCommand>(cmd => cmd.Duration == input.Duration && cmd.ExerciseId == input.ExerciseId && cmd.Level == input.Level && cmd.Notes == input.Notes))); }
public void IfTheModelStateIsNotValidTheUserIsPromptedToReEnter() { var invoker = new Mock<ICommandInvoker>(); var controller = new AddController(invoker.Object, null); controller.ModelState.AddModelError("Level", "foo"); var input = new AddCardioInputModel { ExerciseId = 1, Level = 1, Duration = 45, Notes = string.Empty }; var res = (ViewResult) controller.Cardio(input); res.ViewName.ShouldEqual(""); }
public ActionResult Cardio(AddCardioInputModel input) { if (!ModelState.IsValid) return View(input); var command = new AddCardioCommand { Duration = input.Duration, ExerciseId = input.ExerciseId, Level = input.Level, Notes = input.Notes }; _commandInvoker.Execute(command); return RedirectToAction("Index", "Workout"); }