Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        public void IsLogForEvent_WhenPredicateIsNotNull_ReturnsPredicateResult()
        {
            var queue         = new Mock <IQueue>();
            var processor     = new EventLogQueueProcessor(queue.Object, predicate: log => false);
            var transferEvent = TestData.Contracts.StandardContract.SampleTransferLog();

            Assert.False(processor.IsLogForEvent(transferEvent));
        }
Esempio n. 3
0
        public void IsLogForEvent_WhenPredicateIsNull_ReturnsTrue()
        {
            var queue         = new Mock <IQueue>();
            var processor     = new EventLogQueueProcessor(queue.Object);
            var transferEvent = TestData.Contracts.StandardContract.SampleTransferLog();

            Assert.True(processor.IsLogForEvent(transferEvent));
        }
        public void IsLogForEvent_WhenTheEventMatchesReturnsTrue()
        {
            var queue = new Mock <IQueue>();

            var processor = new EventLogQueueProcessor <TestData.Contracts.StandardContract.TransferEvent>(queue.Object);

            var transferEvent  = TestData.Contracts.StandardContract.SampleTransferLog();
            var nonTransferLog = new FilterLog();

            Assert.True(processor.IsLogForEvent(transferEvent));
            Assert.False(processor.IsLogForEvent(nonTransferLog));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
            }
        }