public async Task AddKudosLog_UserIsNotAdminAndTotalPointsIsNotNull_AddKudosLogInvoked() { // Arrange const int explicitAmount = 123456; var request = new AddKudosLogViewModel { TotalPointsPerReceiver = explicitAmount }; var mappedRequest = new AddKudosLogDto(); _mapper.Map <AddKudosLogViewModel, AddKudosLogDto>(request).Returns(mappedRequest); _permissionService.UserHasPermissionAsync(Arg.Any <UserAndOrganizationDto>(), AdministrationPermissions.Kudos) .Returns(false); // Act var response = await _kudosController.AddKudosLog(request); var result = await response.ExecuteAsync(CancellationToken.None); // Assert Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); await _kudosService.DidNotReceive().AddKudosLogAsync(mappedRequest, explicitAmount); await _kudosService.Received(1).AddKudosLogAsync(mappedRequest); }
public IHttpActionResult AddKudosLog(AddKudosLogViewModel kudosLog) { if (!ModelState.IsValid) { return(BadRequest(Resources.Models.Kudos.Kudos.KudosifyModalError)); } var kudosLogDto = _mapper.Map <AddKudosLogViewModel, AddKudosLogDTO>(kudosLog); SetOrganizationAndUser(kudosLogDto); try { if (kudosLog.TotalPointsPerReceiver.HasValue && _permissionService.UserHasPermission(GetUserAndOrganization(), AdministrationPermissions.Kudos)) { _kudosService.AddKudosLog(kudosLogDto, kudosLog.TotalPointsPerReceiver.Value); } else { _kudosService.AddKudosLog(kudosLogDto); } return(Ok()); } catch (UnauthorizedException) { return(Unauthorized()); } catch (ValidationException e) { return(BadRequestWithError(e)); } }