public async Task UserDoesNotExist_ThrowsException(UserStatus userStatus) { var organisationUserId = Guid.NewGuid(); A.CallTo(() => dataAccess.GetOrganisationUser(organisationUserId)) .Returns((OrganisationUser)null); await Assert.ThrowsAnyAsync <Exception>( () => UpdateOrganisationUserStatusHandler() .HandleAsync(new UpdateOrganisationUserStatus(organisationUserId, userStatus))); }
public async Task <int> HandleAsync(UpdateOrganisationUserStatus query) { var organisationUser = await dataAccess.GetOrganisationUser(query.OrganisationUserId); if (organisationUser == null) { throw new Exception(string.Format("No organisation user was found with ID \"{0}\".", query.OrganisationUserId)); } authorization.EnsureInternalOrOrganisationAccess(organisationUser.OrganisationId); if (userContext != null && userContext.UserId.ToString() == organisationUser.UserId) { throw new InvalidOperationException(string.Format("Error for user with Id '{0}': Users cannot change their own status", userContext.UserId)); } return(await dataAccess.ChangeOrganisationUserStatus(organisationUser, query.UserStatus)); }