public async Task PatchProject_CallWithMockedIProject_ThrowsAndCatchesProjectException() { // Arrange var mock = new Mock <IProject>(); var projectGuid = Guid.NewGuid(); var projectDto = new DetailedProjectDto() { Id = projectGuid, Name = "Project" }; var jsonPatchDoc = new JsonPatchDocument(); var message = "ExceptionThrown"; var ex = new ProjectException(message); mock.Setup(project => project.PatchProjectAsync(projectGuid, jsonPatchDoc)).ThrowsAsync(ex); var projectsController = new ProjectsController(mock.Object); // Act var result = await projectsController.PatchProject(projectGuid, jsonPatchDoc); var response = (BadRequestObjectResult)result; var objectResult = (ResponseDto <ErrorDto>)response.Value; // Assert Assert.IsType <BadRequestObjectResult>(result); Assert.IsType <ResponseDto <ErrorDto> >(response.Value); Assert.Equal(message, objectResult.Data.Message); }
public async Task GetProject_CallWithMockedIProject_ReturnsOkObjectResult() { // Arrange var mock = new Mock <IProject>(); var projectGuid = Guid.NewGuid(); var project = new DetailedProjectDto() { Id = projectGuid, Name = "Project" }; mock.Setup(project => project.GetProjectAsync(projectGuid)).ReturnsAsync(project); var projectsController = new ProjectsController(mock.Object); // Act var result = await projectsController.GetProject(projectGuid); var response = (OkObjectResult)result; var objectResult = (ResponseDto <DetailedProjectDto>)response.Value; // Assert Assert.IsType <OkObjectResult>(result); Assert.IsType <ResponseDto <DetailedProjectDto> >(response.Value); Assert.Equal(objectResult.Data.Id, projectGuid); }
public async Task PatchProject_CallWithMockedIProject_ReturnsOkObjectResult() { // Arrange var mock = new Mock <IProject>(); var projectGuid = Guid.NewGuid(); var projectDto = new DetailedProjectDto() { Id = projectGuid, Name = "Project" }; var jsonPatchDoc = new JsonPatchDocument(); mock.Setup(project => project.PatchProjectAsync(projectGuid, jsonPatchDoc)).ReturnsAsync(projectDto); var projectsController = new ProjectsController(mock.Object); // Act var result = await projectsController.PatchProject(projectGuid, jsonPatchDoc); var response = (OkObjectResult)result; var objectResult = (ResponseDto <DetailedProjectDto>)response.Value; // Assert Assert.IsType <OkObjectResult>(result); Assert.IsType <ResponseDto <DetailedProjectDto> >(response.Value); }
public async Task <DetailedProjectDto> GetProjectAsync(Guid id) { ProjectEntity project = await _projectStorage.FindAsync(m => m.Id == id); DetailedProjectDto detailedProjectDto = _mapper.Map <DetailedProjectDto>(project); return(detailedProjectDto); }
public async Task <DetailedProjectDto> PatchProjectAsync(Guid Id, JsonPatchDocument projectPatch) { ProjectEntity patchedProject = await _projectStorage.FindAsync(m => m.Id == Id); projectPatch.ApplyTo(patchedProject); await RecomputeProjectCollaboratorSuggestions(_mapper.Map <ProjectDto>(patchedProject)); ProjectEntity updatedProject = await _projectStorage.UpdateAsync(patchedProject); DetailedProjectDto detailedProjectDto = _mapper.Map <DetailedProjectDto>(updatedProject); return(detailedProjectDto); }
public async Task <DetailedProjectDto> UpdateProjectAsync(DetailedProjectDto project) { await ValidateProject(new ProjectDto() { CommunicationPlatform = project.CommunicationPlatform }); var mappedEntity = _mapper.Map <ProjectEntity>(project); await RecomputeProjectCollaboratorSuggestions(_mapper.Map <ProjectDto>(project)); ProjectEntity updatedProject = await _projectStorage.UpdateAsync(mappedEntity); DetailedProjectDto detailedProjectDto = _mapper.Map <DetailedProjectDto>(updatedProject); return(detailedProjectDto); }
public async Task <IActionResult> UpdateProject([FromBody] DetailedProjectDto project) { ResponseDto <DetailedProjectDto> okResponse = new ResponseDto <DetailedProjectDto>(true); ResponseDto <ErrorDto> errorResponse = new ResponseDto <ErrorDto>(false); try { var updatedProject = await _project.UpdateProjectAsync(project); okResponse.Data = updatedProject; } catch (ProjectException e) { errorResponse.Data = new ErrorDto(e.Message); return(BadRequest(errorResponse)); } return(Ok(okResponse)); }