public AbstractMessageProcessor( INotificationChannel <T> notificationChannel, IStorageProvider <T> storageProvider, IStorageMessageSerializer messageSerializer, ITransactionTracker <T> transactionTracker, IAsbtractMqFactory <T> mqFactory) { _notificationChannel = notificationChannel ?? throw new ArgumentNullException(nameof(notificationChannel)); _storageProvider = storageProvider ?? throw new ArgumentNullException(nameof(storageProvider)); _messageSerializer = messageSerializer ?? throw new ArgumentNullException(nameof(messageSerializer)); _transactionTracker = transactionTracker ?? throw new ArgumentNullException(nameof(transactionTracker)); _mqFactory = mqFactory ?? throw new ArgumentNullException(nameof(mqFactory)); }
public async Task ItShouldStoreTheExpectedMessagesWhenNoExceptionIsThrown( [Frozen] IStorageProvider <long> storageProvider, [Frozen] IStorageMessageSerializer serializer, CancellationToken cancellation, NotificationTransaction expectedTransaction, INotification <long>[] expectedNotifications, INotificationChannel <long> channel, AbstractMessageProcessor <long> sut) { // Arrange // Act await sut.GetMessages(cancellation); // Assert A.CallTo(() => storageProvider.Store(serializer, expectedNotifications)).MustHaveHappened(Repeated.Exactly.Once) .Then(A.CallTo(() => channel.Commit(expectedNotifications, expectedTransaction)).MustHaveHappened(Repeated.Exactly.Once)); }