public void Setup() { _command = new ChangeTeamMemberRoleCommand { HashedAccountId = "1", Email = "*****@*****.**", Role = Role.Owner, ExternalUserId = Guid.NewGuid().ToString(), }; _callerMembership = new MembershipView { AccountId = ExpectedAccountId, UserRef = Guid.NewGuid().ToString(), UserId = 1, Role = Role.Owner }; _userMembership = new TeamMember { AccountId = _callerMembership.AccountId, UserRef = Guid.NewGuid().ToString(), Id = _callerMembership.UserId + 1, Role = _command.Role }; _membershipRepository = new Mock <IMembershipRepository>(); _membershipRepository.Setup(x => x.GetCaller(_command.HashedAccountId, _command.ExternalUserId)).ReturnsAsync(_callerMembership); _membershipRepository.Setup(x => x.Get(_callerMembership.AccountId, _command.Email)).ReturnsAsync(_userMembership); _mediator = new Mock <IMediator>(); _eventPublisher = new Mock <IEventPublisher>(); _handler = new ChangeTeamMemberRoleCommandHandler(_membershipRepository.Object, _mediator.Object, _eventPublisher.Object); }
public void IfUserIsCallerWillThrowException() { var command = new ChangeTeamMemberRoleCommand { HashedAccountId = "1", Email = "*****@*****.**", Role = Role.Owner, ExternalUserId = Guid.NewGuid().ToString() }; var callerMembership = new MembershipView { AccountId = ExpectedAccountId, UserId = 1, Role = Role.Owner }; var userMembership = new TeamMember { AccountId = callerMembership.AccountId, Id = callerMembership.UserId, Role = callerMembership.Role }; _membershipRepository.Setup(x => x.GetCaller(callerMembership.AccountId, command.ExternalUserId)).ReturnsAsync(callerMembership); _membershipRepository.Setup(x => x.Get(callerMembership.AccountId, command.Email)).ReturnsAsync(userMembership); var exception = Assert.ThrowsAsync <InvalidRequestException>(() => _handler.Handle(command)); Assert.That(exception.ErrorMessages.Count, Is.EqualTo(1)); Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "Membership"), Is.Not.Null); }
public void ThenAnInvalidRequestWillThrowException() { var command = new ChangeTeamMemberRoleCommand(); var exception = Assert.ThrowsAsync <InvalidRequestException>(() => _handler.Handle(command)); Assert.That(exception.ErrorMessages.Count, Is.EqualTo(4)); Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "AccountId"), Is.Not.Null); Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "Email"), Is.Not.Null); Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "Role"), Is.Not.Null); Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "ExternalUserId"), Is.Not.Null); }
public void IfCallerNotMemberOfAccountWillThrowException() { var command = new ChangeTeamMemberRoleCommand { HashedAccountId = "1", Email = "*****@*****.**", RoleId = 1, ExternalUserId = Guid.NewGuid().ToString() }; _membershipRepository.Setup(x => x.GetCaller(command.HashedAccountId, command.ExternalUserId)).ReturnsAsync(null); var exception = Assert.ThrowsAsync <InvalidRequestException>(() => _handler.Handle(command)); Assert.That(exception.ErrorMessages.Count, Is.EqualTo(1)); Assert.That(exception.ErrorMessages.FirstOrDefault(x => x.Key == "Membership"), Is.Not.Null); }