Exemple #1
0
 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));
        }