public static async Task PublishUserEmailConfirmationTokenGeneratedIntegrationEventAsync(
            this IServiceBusPublisher publisher,
            UserId userId,
            string code
            )
        {
            var integrationEvent = new UserEmailConfirmationTokenGeneratedIntegrationEvent
            {
                UserId = userId,
                Code   = code
            };

            await publisher.PublishAsync(integrationEvent);
        }
Example #2
0
        public async Task HandleAsync_WhenUserEmailConfirmationTokenGeneratedIntegrationEventIsValid_ShouldBeCompletedTask()
        {
            // Arrange
            TestMock.UserService.Setup(userService => userService.SendEmailAsync(It.IsAny <UserId>(), It.IsAny <string>(), It.IsAny <object>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            TestMock.RedirectService.Setup(redirectService => redirectService.RedirectToWebSpa(It.IsAny <string>())).Returns("testUrl").Verifiable();

            var handler = new UserEmailConfirmationTokenGeneratedIntegrationEventHandler(TestMock.UserService.Object, TestMock.RedirectService.Object, TestMock.SendgridOptions.Object);

            var integrationEvent = new UserEmailConfirmationTokenGeneratedIntegrationEvent
            {
                Code   = "testCode",
                UserId = new UserId()
            };

            // Act
            await handler.HandleAsync(integrationEvent);

            // Assert
            TestMock.UserService.Verify(userService => userService.SendEmailAsync(It.IsAny <UserId>(), It.IsAny <string>(), It.IsAny <object>()), Times.Once);
            TestMock.RedirectService.Verify(redirectService => redirectService.RedirectToWebSpa(It.IsAny <string>()), Times.Once);
        }