public ActionResult Create(DupeCheckViewModel viewModel) { // check for duplicate project if (viewModel.ArchitectId.HasValue) { List<Project> dupes = _service.FindDuplicate(viewModel.Title, viewModel.Number, viewModel.ArchitectId.Value).ToList(); if (dupes.Count() > 0) { return RedirectToRoute("Default", new { controller = "Project", action = "Duplicates", architectId = viewModel.ArchitectId, title = viewModel.Title, number = viewModel.Number }); } else { return RedirectToRoute("Default", new { controller = "Project", action = "CreateStepTwo", architectId = viewModel.ArchitectId, title = viewModel.Title, number = viewModel.Number }); } } else // architect is not in the system. let's make a record of them, and send them an invite. { return RedirectToRoute("Account_default", new { controller = "Company", action = "CreateArchitect", name = viewModel.Architect, title = viewModel.Title, number = viewModel.Number }); } }
public void Post_Create_UniqueProject_Redirects_CreateStepTwo() { // arrange DupeCheckViewModel viewModel = new DupeCheckViewModel { ArchitectId = 3, Number = "abc123 hello hello", Title = "build a house for cake" }; Mock<IProjectServiceLayer> service = new Mock<IProjectServiceLayer>(); service.Setup(s => s.FindDuplicate(viewModel.Title, viewModel.Number, viewModel.ArchitectId.Value)).Returns(new List<Project>()); // return empty list. no matches found Mock<INotificationSender> notice = new Mock<INotificationSender>(); Mock<IWebSecurityWrapper> security = new Mock<IWebSecurityWrapper>(); ProjectController controller = new ProjectController(service.Object, security.Object, notice.Object); // act var result = controller.Create(viewModel); // assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult)); Assert.AreEqual("CreateStepTwo", ((RedirectToRouteResult)result).RouteValues["action"]); Assert.AreEqual("Project", ((RedirectToRouteResult)result).RouteValues["controller"]); }
public void Post_Create_NewArchitect_RedirectsTo_CreateArchitect() { // arrange DupeCheckViewModel viewModel = new DupeCheckViewModel { Architect = "u build it, we draw it", Number = "abc123 hello hello", Title = "build a house for cake" }; Mock<IProjectServiceLayer> service = new Mock<IProjectServiceLayer>(); Mock<INotificationSender> notice = new Mock<INotificationSender>(); Mock<IWebSecurityWrapper> security = new Mock<IWebSecurityWrapper>(); ProjectController controller = new ProjectController(service.Object, security.Object, notice.Object); // act var result = controller.Create(viewModel); // assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult)); Assert.AreEqual("CreateArchitect", ((RedirectToRouteResult)result).RouteValues["action"]); Assert.AreEqual("Company", ((RedirectToRouteResult)result).RouteValues["controller"]); }