public IActionResult UpdateProject([FromBody] ProjectCreateUpdateRequestDto updatedProjectData) { var projectForUpdate = _projectService.GetProjectById(updatedProjectData.Id.Value); if (projectForUpdate == null) { return(NotFound(updatedProjectData.Id)); } if (ModelState.IsValid) { // Adding validation error for project name only if it's really changed // Otherwise user will not be able to edit project without changing its name if (projectForUpdate.Name != updatedProjectData.Name && _projectService.IsProjectExists (updatedProjectData.Name, updatedProjectData.UserId.Value)) { ModelState.AddModelError("projectNameRemote", "Project for target user with specified name is already exists"); } } if (ModelState.IsValid) { // Returns projectForUpdate object with fields rewritten according to DTO object projectForUpdate = _mapper.Map(updatedProjectData, projectForUpdate); _projectService.Update(projectForUpdate); return(Ok()); } return(BadRequest(ModelState)); }
public void CreateProjectReturnsBadRequestOnInvalidData() { var projectData = new ProjectCreateUpdateRequestDto(); ProjectsController controller = this.ProjectsControllerInstance; controller.ModelState.AddModelError("error", "error"); IActionResult result = controller.CreateProject(projectData); Assert.IsType <BadRequestObjectResult>(result); }
public void CreateProjectReturnsOkOnCorrectData() { var projectData = new ProjectCreateUpdateRequestDto() { Id = 1, UserId = 1 }; IActionResult result = this.ProjectsControllerInstance.CreateProject(projectData); Assert.IsType <OkResult>(result); }
public IActionResult CreateProject([FromBody] ProjectCreateUpdateRequestDto projectData) { if (ModelState.IsValid) { if (_projectService.IsProjectExists(projectData.Name, projectData.UserId.Value)) { ModelState.AddModelError("projectNameRemote", "Project for target user with specified name is already exists"); } } if (ModelState.IsValid) { var project = _mapper.Map <Project>(projectData); _projectService.Create(project); return(Ok()); } return(BadRequest(ModelState)); }
public void UpdateProjectReturnsOkOnSuccessfulUpdate() { var projectData = new ProjectCreateUpdateRequestDto() { Id = 1, Name = "Test", Description = "Test", UserId = 1 }; _projectServiceMock.Setup(service => service.GetProjectById(It.IsAny <int>())) .Returns(TestValuesProvider.GetProjects().FirstOrDefault()); IActionResult result = this.ProjectsControllerInstance.UpdateProject(projectData); _projectServiceMock.Verify(service => service.GetProjectById(projectData.Id.Value), Times.Once); _projectServiceMock.Verify(service => service.IsProjectExists(projectData.Name, projectData.UserId.Value), Times.Once); _projectServiceMock.Verify(service => service.Update(It.IsAny <Project>()), Times.Once); Assert.IsType <OkResult>(result); }
public void UpdateProjectReturnsNotFoundIfProjectNotFoundById() { var projectData = new ProjectCreateUpdateRequestDto() { Id = 1, Name = "Test", Description = "Test", UserId = 1 }; _projectServiceMock.Setup(service => service.GetProjectById(It.IsAny <int>())) .Returns(null as Project); IActionResult result = this.ProjectsControllerInstance.UpdateProject(projectData); _projectServiceMock.Verify(service => service.GetProjectById(projectData.Id.Value), Times.Once); _projectServiceMock.Verify(service => service.IsProjectExists(projectData.Name, projectData.UserId.Value), Times.Never); _projectServiceMock.Verify(service => service.Update(It.IsAny <Project>()), Times.Never); Assert.IsType <NotFoundObjectResult>(result); }
public void UpdateProjectReturnsBadRequestOnInvalidData() { var projectData = new ProjectCreateUpdateRequestDto() { Id = 1, Name = "Test", Description = "Test", UserId = 1 }; ProjectsController controller = this.ProjectsControllerInstance; controller.ModelState.AddModelError("error", "error"); _projectServiceMock.Setup(service => service.GetProjectById(projectData.Id.Value)) .Returns(TestValuesProvider.GetProjects().FirstOrDefault()); IActionResult result = controller.UpdateProject(projectData); _projectServiceMock.Verify(service => service.GetProjectById(projectData.Id.Value), Times.Once); _projectServiceMock.Verify(service => service.IsProjectExists(projectData.Name, projectData.UserId.Value), Times.Never); _projectServiceMock.Verify(service => service.Update(It.IsAny <Project>()), Times.Never); Assert.IsType <BadRequestObjectResult>(result); }