public async Task Process_WhenMapperIsNotNull_WritesMappedLogsToQueue() { var queue = new Mock <IQueue>(); var queudMessages = new List <object>(); queue .Setup(q => q.AddMessageAsync(It.IsAny <object>())) .Callback <object>(o => queudMessages.Add(o)).Returns(Task.CompletedTask); var processor = new EventLogQueueProcessor( queue.Object, mapper: log => new QueueMessage { TransactionHash = log.TransactionHash, LogIndex = log.LogIndex }); var logs = new[] { TestData.Contracts.StandardContract.SampleTransferLog(), TestData.Contracts.StandardContract.SampleTransferLog() }; await processor.ProcessLogsAsync(logs); Assert.Equal(logs.Length, queudMessages.Count); foreach (var message in queudMessages) { Assert.IsType <QueueMessage>(message); } }
public async Task Process_WhenPredicateReturnsFalseDoesNotAddToQueue() { var queue = new Mock <IQueue>(); var queudMessages = new List <object>(); queue .Setup(q => q.AddMessageAsync(It.IsAny <object>())) .Callback <object>(o => queudMessages.Add(o)).Returns(Task.CompletedTask); var processor = new EventLogQueueProcessor( queue.Object, predicate: tfr => false); var logs = new[] { TestData.Contracts.StandardContract.SampleTransferLog() }; await processor.ProcessLogsAsync(logs); Assert.Empty(queudMessages); }
public async Task Process_AddsLogsToQueue() { var queue = new Mock <IQueue>(); var messages = new List <object>(); queue .Setup(q => q.AddMessageAsync(It.IsAny <object>())) .Callback <object>(o => messages.Add(o)).Returns(Task.CompletedTask); var processor = new EventLogQueueProcessor(queue.Object); var logs = new[] { TestData.Contracts.StandardContract.SampleTransferLog(), TestData.Contracts.StandardContract.SampleTransferLog() }; await processor.ProcessLogsAsync(logs); Assert.Equal(logs.Length, messages.Count); foreach (var message in messages) { Assert.IsType <FilterLog>(message); } }