public static async Task PublishUserEmailConfirmationTokenGeneratedIntegrationEventAsync( this IServiceBusPublisher publisher, UserId userId, string code ) { var integrationEvent = new UserEmailConfirmationTokenGeneratedIntegrationEvent { UserId = userId, Code = code }; await publisher.PublishAsync(integrationEvent); }
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); }