public ChangePasswordEmail(SendEmailToChangePasswordCommand command, ApimDeveloperMessagingConfiguration config)
 {
     TemplateId       = config.ChangePasswordTemplateId;
     RecipientAddress = command.Email;
     ReplyToAddress   = EmailConstants.ReplyToAddress;
     Tokens           = new Dictionary <string, string>
     {
         { "Contact", $"{command.FirstName} {command.LastName}" },
         { "ChangePasswordURL", command.ChangePasswordUrl }
     };
 }
        public void Then_Values_Are_Set_Correctly(
            SendEmailToChangePasswordCommand command, ApimDeveloperMessagingConfiguration config)
        {
            var expectedTokens = new Dictionary <string, string>
            {
                { "Contact", $"{command.FirstName} {command.LastName}" },
                { "ChangePasswordURL", command.ChangePasswordUrl }
            };

            var email = new ChangePasswordEmail(command, config);

            email.TemplateId.Should().Be(config.ChangePasswordTemplateId);
            email.RecipientAddress.Should().Be(command.Email);
            email.ReplyToAddress.Should().Be(EmailConstants.ReplyToAddress);
            email.Tokens.Should().BeEquivalentTo(expectedTokens);
        }
Пример #3
0
        public async Task Then_A_Notification_Is_Sent_And_Api_Called(
            SendEmailToChangePasswordCommand command,
            [Frozen] Mock <IOptions <ApimDeveloperMessagingConfiguration> > mockOptions,
            [Frozen] Mock <INotificationService> mockNotificationService,
            SendEmailToChangePasswordCommandHandler handler)
        {
            //Arrange
            SendEmailCommand actualEmail = null;

            mockNotificationService
            .Setup(service => service.Send(It.IsAny <SendEmailCommand>()))
            .Callback((SendEmailCommand args) => actualEmail = args)
            .Returns(Task.CompletedTask);
            var expectedEmail = new ChangePasswordEmail(command, mockOptions.Object.Value);


            //Act
            await handler.Handle(command, CancellationToken.None);

            //Assert
            actualEmail.Tokens.Should().BeEquivalentTo(expectedEmail.Tokens);
            actualEmail.RecipientsAddress.Should().BeEquivalentTo(expectedEmail.RecipientAddress);
            actualEmail.TemplateId.Should().BeEquivalentTo(expectedEmail.TemplateId);
        }