public async Task HandleAsync_Should_Throw_ValidationException_When_Account_Is_Not_Confirmed() { var requestPasswordResetTokenCommand = new RequestPasswordResetTokenCommand("*****@*****.**"); var account = Account.Builder() .SetId(Guid.NewGuid()) .SetEmail(requestPasswordResetTokenCommand.Email) .SetConfirmed(false) .SetPasswordHash("PasswordHash") .SetSecurityStamp(Guid.NewGuid()) .SetCreated(DateTimeOffset.UtcNow) .SetRoles(new List <Guid> { Guid.NewGuid() }) .Build(); var getAccountResult = GetResult <Account> .Ok(account); var errors = new Collection <IError> { new Error(AccountErrorCodeEnumeration.NotConfirmed, AccountErrorMessage.NotConfirmed) }; var emailIsConfirmedVerificationResult = VerificationResult.Fail(errors); _accountGetterServiceMock.Setup(x => x.GetByEmailAsync(It.IsAny <string>())) .ReturnsAsync(getAccountResult); _accountVerificationServiceMock.Setup(x => x.VerifyAccountIsConfirmed(It.IsAny <bool>())) .Returns(emailIsConfirmedVerificationResult); Func <Task> result = async() => await _commandHandler.HandleAsync(requestPasswordResetTokenCommand); var exceptionResult = await result.Should().ThrowExactlyAsync <ValidationException>(); exceptionResult.And.Errors.Should().BeEquivalentTo(errors); }
public async Task HandleAsync_Should_Throw_ValidationException_When_Account_Is_Not_Found() { var requestPasswordResetTokenCommand = new RequestPasswordResetTokenCommand("*****@*****.**"); var errors = new Collection <IError> { new Error(AccountErrorCodeEnumeration.NotFound, AccountErrorMessage.NotFound) }; var getAccountResult = GetResult <Account> .Fail(errors); _accountGetterServiceMock.Setup(x => x.GetByEmailAsync(It.IsAny <string>())) .ReturnsAsync(getAccountResult); Func <Task> result = async() => await _commandHandler.HandleAsync(requestPasswordResetTokenCommand); var exceptionResult = await result.Should().ThrowExactlyAsync <ValidationException>(); exceptionResult.And.Errors.Should().BeEquivalentTo(errors); }
public async Task RequestPasswordResetTokenAsync_Should_Return_NoContentResult() { var requestPasswordResetTokenRequest = new RequestPasswordResetTokenRequest { Email = "*****@*****.**" }; var requestPasswordResetTokenCommand = new RequestPasswordResetTokenCommand(requestPasswordResetTokenRequest.Email); _mapperMock.Setup(x => x.Map <RequestPasswordResetTokenRequest, RequestPasswordResetTokenCommand>(It.IsAny <RequestPasswordResetTokenRequest>())) .Returns(requestPasswordResetTokenCommand); _communicationBusMock.Setup(x => x.SendCommandAsync(It.IsAny <RequestPasswordResetTokenCommand>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); var result = await _controller.RequestPasswordResetTokenAsync(requestPasswordResetTokenRequest); var noContentResult = result.As <NoContentResult>(); noContentResult.Should().NotBeNull(); }
public async Task HandleAsync_Should_Request_Password_Reset_Token() { var requestPasswordResetTokenCommand = new RequestPasswordResetTokenCommand("*****@*****.**"); var account = Account.Builder() .SetId(Guid.NewGuid()) .SetEmail(requestPasswordResetTokenCommand.Email) .SetConfirmed(false) .SetPasswordHash("PasswordHash") .SetSecurityStamp(Guid.NewGuid()) .SetCreated(DateTimeOffset.UtcNow) .SetRoles(new List <Guid> { Guid.NewGuid() }) .Build(); var getAccountResult = GetResult <Account> .Ok(account); var emailIsConfirmedVerificationResult = VerificationResult.Ok(); var passwordIsSetVerificationResult = VerificationResult.Ok(); var cancellationToken = new CancellationToken(); _accountGetterServiceMock.Setup(x => x.GetByEmailAsync(It.IsAny <string>())) .ReturnsAsync(getAccountResult); _accountVerificationServiceMock.Setup(x => x.VerifyAccountIsConfirmed(It.IsAny <bool>())) .Returns(emailIsConfirmedVerificationResult); _accountVerificationServiceMock.Setup(x => x.VerifyPasswordIsSet(It.IsAny <string>())) .Returns(passwordIsSetVerificationResult); _communicationBusMock.Setup(x => x.DispatchDomainEventsAsync(It.IsAny <Account>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _accountRepositoryMock.Setup(x => x.UpdateAsync(It.IsAny <Account>())).Returns(Task.CompletedTask); _passwordResetTokenRequestServiceMock .Setup(x => x.PublishPasswordResetRequestedIntegrationEventAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>())) .Returns(Task.CompletedTask) .Verifiable(); Func <Task> result = async() => await _commandHandler.HandleAsync(requestPasswordResetTokenCommand, cancellationToken); await result.Should().NotThrowAsync <Exception>(); _communicationBusMock.Verify( x => x.DispatchDomainEventsAsync(It.Is <Account>(a => a == account), It.Is <CancellationToken>(ct => ct == cancellationToken)), Times.Once); }