public async Task ChangeOfChargesTransactionHandler_WhenCalled_ShouldCallPublisher( [NotNull][Frozen] Mock <ILocalEventPublisher> localEventPublisher, [NotNull] ChangeOfChargesTransactionHandler sut) { // Arrange var transaction = new ChangeOfChargesTransactionBuilder().Build(); // Act await sut.HandleAsync(transaction).ConfigureAwait(false); // Assert localEventPublisher.Verify(x => x.PublishAsync(It.Is <ChargeTransactionReceived>(localEvent => localEvent.Transaction == transaction && localEvent.CorrelationId == transaction.CorrelationId))); }
public async Task HandleAsync_WhenCalledWithMultipleTransactions_ShouldCallMultipleTimes( [NotNull][Frozen] Mock <IChangeOfChargesTransactionHandler> changeOfChargesTransactionHandler, [NotNull] ChangeOfChargesMessageHandler sut) { // Arrange var transactionBuilder = new ChangeOfChargesTransactionBuilder(); var changeOfChargesMessage = new ChangeOfChargesMessageBuilder() .WithTransaction(transactionBuilder.Build()) .WithTransaction(transactionBuilder.Build()) .WithTransaction(transactionBuilder.Build()) .Build(); // Act var response = await sut.HandleAsync(changeOfChargesMessage).ConfigureAwait(false); // Assert changeOfChargesTransactionHandler .Verify(v => v.HandleAsync(It.IsAny <ChangeOfChargesTransaction>()), Times.Exactly(3)); response.IsSucceeded.Should().BeTrue(); }