public async Task <OrchestratorResponse <EmployerTeamMembersViewModel> > ChangeRole( string hashedId, string email, short role, string externalUserId) { try { await _mediator.SendAsync(new ChangeTeamMemberRoleCommand { HashedAccountId = hashedId, Email = email, RoleId = role, ExternalUserId = externalUserId }); var response = await GetTeamMembers(hashedId, externalUserId); if (response.Status == HttpStatusCode.OK) { response.FlashMessage = new FlashMessageViewModel() { Severity = FlashMessageSeverityLevel.Success, Headline = "Team member updated", HiddenFlashMessageInformation = "page-team-member-role-changed", Message = $"{email} can now {RoleStrings.GetRoleDescriptionToLower(role)}" }; } return(response); } catch (InvalidRequestException e) { return(new OrchestratorResponse <EmployerTeamMembersViewModel> { Status = HttpStatusCode.BadRequest, Exception = e }); } catch (UnauthorizedAccessException e) { return(new OrchestratorResponse <EmployerTeamMembersViewModel> { Status = HttpStatusCode.Unauthorized, Exception = e }); } }
public async Task ThenIShouldGetBackAnUpdatedTeamMembersListWithTheCorrectSuccessMessage() { //Assign const string email = "*****@*****.**"; const Role role = Role.Owner; var response = new GetAccountTeamMembersResponse(); _mediator.Setup(x => x.SendAsync(It.IsAny <ChangeTeamMemberRoleCommand>())).ReturnsAsync(Unit.Value); _mediator.Setup(x => x.SendAsync(It.IsAny <GetAccountTeamMembersQuery>())).ReturnsAsync(response); //Act var result = await _orchestrator.ChangeRole("437675", email, role, "37648"); //Assert Assert.IsNotNull(result); Assert.AreEqual(HttpStatusCode.OK, result.Status); Assert.IsNotNull(result.FlashMessage); Assert.AreEqual("Team member updated", result.FlashMessage.Headline); Assert.AreEqual($"{email} can now {RoleStrings.GetRoleDescriptionToLower(role)}", result.FlashMessage.Message); }