Ejemplo n.º 1
0
        public async Task WillRequestLogsForEachFilter()
        {
            var mockLogProcessor = new Mock <ILogProcessor>();
            var web3Mock         = new Web3Mock();
            var logs             = new[] { new FilterLog() };
            var filtersExecuted  = new List <NewFilterInput>();

            var filters = new[] { new NewFilterInput(), new NewFilterInput() };

            web3Mock.GetLogsMock
            .Setup(p => p.SendRequestAsync(It.IsAny <NewFilterInput>(), null))
            .Callback <NewFilterInput, object>((f, o) => filtersExecuted.Add(f))
            .ReturnsAsync(logs);

            web3Mock.BlockNumberMock
            .Setup(p => p.SendRequestAsync(null))
            .ReturnsAsync(100.ToHexBigInteger());

            var processor = new LogsProcessorBuilder(web3Mock.Eth)
                            .Set(p => p.BlocksPerBatch = 1)
                            .Filter(filters[0])
                            .Filter(filters[1])
                            .Add(mockLogProcessor.Object)
                            .Build();

            var result = await processor.ProcessOnceAsync(new CancellationToken());

            Assert.Equal(filters, filtersExecuted);
        }
Ejemplo n.º 2
0
        public async Task IfMinimumBlockNumberIsNull_AndThereIsNoPreviousProgress_StartsAtCurrentBlockOnChain()
        {
            var mockLogProcessor = new Mock <ILogProcessor>();
            var web3Mock         = new Web3Mock();
            var logs             = new[] { new FilterLog() };

            web3Mock.GetLogsMock
            .Setup(p => p.SendRequestAsync(It.IsAny <NewFilterInput>(), null))
            .ReturnsAsync(logs);

            web3Mock.BlockNumberMock
            .Setup(p => p.SendRequestAsync(null))
            .ReturnsAsync(100.ToHexBigInteger());

            var processor = new LogsProcessorBuilder(web3Mock.Eth)
                            .Set(p => p.BlocksPerBatch = 1)
                            .Add(mockLogProcessor.Object)
                            .Build();

            var result = await processor.ProcessOnceAsync(new CancellationToken());

            Assert.Equal(100.ToHexBigInteger(), result.Value.From);
            Assert.Equal(100.ToHexBigInteger(), result.Value.To);
        }