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); }
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); }