public void CreateCallsProjectServiceEdit() { Mock <IRepository <Task> > taskRepository = new Mock <IRepository <Task> >(); Mock <ITaskService> taskService = new Mock <ITaskService>(); Mock <IRepository <User> > userRepository = new Mock <IRepository <User> >(); Mock <IRepository <Project> > projectRepository = new Mock <IRepository <Project> >(); Mock <IProjectService> projectService = new Mock <IProjectService>(); var project = new BasicProject() { Id = 1, EstimatedHours = 3m, Title = "TestProject", ProjectManager = new User() { UserName = "******" }, Tasks = new List <Task>() }; projectRepository.Setup(p => p.Find(1)).Returns(project); userRepository.Setup(u => u.All).Returns(GetIQueryableUser()); var controller = new TaskController(taskRepository.Object, taskService.Object, userRepository.Object, projectRepository.Object, projectService.Object); SetupControllerContext(controller); var viewModel = new BasicTaskViewModel() { Id = 1, Title = "TestTask", UserNames = "jdhall", EstimatedHours = 4m }; viewModel.Project = new TaskViewModel.ProjectDetails() { Id = 1, CustomerName = "TST", EstimatedHours = 2m, Title = "TestProject" }; var result = controller.Create(viewModel); projectService.Verify(ps => ps.Edit(It.Is <Project>(p => p.Tasks.Any(t => t.Id == 1))), Times.Once(), "ProjectEdit not called"); }
public IHttpActionResult Put(int id, BasicTaskViewModel task) { IHttpActionResult ret = null; if (ModelState.IsValid) { task.Id = id; _taskService.UpdateTask(task); ret = Ok(task); } else { System.Web.Http.ModelBinding.ModelStateDictionary errors = BgsHelper.ConvertToModelState(ModelState); ret = BadRequest(errors); } return(ret); }
public IHttpActionResult Post( BasicTaskViewModel task) { IHttpActionResult ret = null; if (ModelState.IsValid) { var savedTask = _taskService.AddTask(task); ret = Created <BasicTaskViewModel>( Request.RequestUri + savedTask.Id.ToString(), task); } else { System.Web.Http.ModelBinding.ModelStateDictionary errors = BgsHelper.ConvertToModelState(ModelState); ret = BadRequest(errors); } return(ret); }