public async Task AssignIssueToUser_WhenUserNotFound_ReturnsUserNotFound() { var claims = new Claim("roles", "TeamLead"); var token = GetJwtToken(new[] { claims }); AddAuth(token); var request = new AssignIssueToUserRequest() { IssueId = IssuesDbSet.Get().First().Id, UserId = Guid.NewGuid() }; var httpResponse = await PostAsync(IssueControllerRoutes.AssignToUser, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <IssueDto> >(); response.VerifyNotSuccessResponseWithErrorCodeAndMessage(ErrorCode.UserNotFound); }
public async Task AssignIssueToUser_WhenRequestIsValid_ReturnsSuccessStatus() { var claims = new Claim("roles", "TeamLead"); var token = GetJwtToken(new[] { claims }); AddAuth(token); var request = new AssignIssueToUserRequest() { IssueId = IssuesDbSet.Get().First().Id, UserId = UsersDbSet.Get().Last().Id }; var httpResponse = await PostAsync(IssueControllerRoutes.AssignToUser, request); httpResponse.EnsureSuccessStatusCode(); var response = await httpResponse.BodyAs <ApiResponse <IssueDto> >(); var issue = await GetIssueFromDatabase(request.IssueId); issue.AssignedToUserId.Should().Be(request.UserId); response.StatusCode.Should().Be(200); await ReSeedDatabase(); }
public async Task AssignIssueToUser_WhenNotValidModelPassed_ReturnsValidationError() { var claims = new Claim("roles", "TeamLead"); var token = GetJwtToken(new[] { claims }); AddAuth(token); //issue id is empty var request = new AssignIssueToUserRequest() { UserId = Guid.NewGuid() }; var httpResponse = await PostAsync(IssueControllerRoutes.AssignToUser, request); var response = await httpResponse.BodyAs <ApiResponse <IssueDto> >(); response.CheckValidationException(1); //user id is empty request = new AssignIssueToUserRequest() { IssueId = Guid.NewGuid() }; httpResponse = await PostAsync(IssueControllerRoutes.AssignToUser, request); response = await httpResponse.BodyAs <ApiResponse <IssueDto> >(); response.CheckValidationException(1); //user id and issue id is empty request = new AssignIssueToUserRequest(); httpResponse = await PostAsync(IssueControllerRoutes.AssignToUser, request); response = await httpResponse.BodyAs <ApiResponse <IssueDto> >(); response.CheckValidationException(2); }
public async Task <ApiResponse <IssueDto> > AssignIssueToUser(AssignIssueToUserRequest request) { try { var entityFound = await _issueRepository.GetByIdAsync(request.IssueId); if (entityFound == null) { _logger.LogWarning("Failed to found issue by id {0}", request.IssueId); return(new ApiResponse <IssueDto>() { StatusCode = 400, IsSuccess = false, ResponseException = new ApiError(ErrorCode.IssueNotFound, ErrorCode.IssueNotFound.GetDescription()) }); } var userFoundResponse = await _userService.GetUsersById(request.UserId); if (!userFoundResponse.IsSuccess) { return(userFoundResponse.ToFailed <IssueDto>()); } entityFound.AssignedToUserId = request.UserId; entityFound.UpdatedAt = _systemClock.UtcNow; await _issueRepository.UpdateAsync(entityFound); return(new ApiResponse <IssueDto>(_issueMapper.MapToModel(entityFound))); } catch (Exception ex) { _logger.LogWarning(ex, "An error occured while assigning user {0} for issue {1} ", request.UserId, request.IssueId); return(ApiResponse <IssueDto> .InternalError()); } }
public async Task <ApiResponse <IssueDto> > AssignIssueToUser([FromBody] AssignIssueToUserRequest request) { return(await _issueService.AssignIssueToUser(request)); }