示例#1
0
        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"]);
        }