public async Task MapsFilterLogToSearchDocument() { var mockElasticClient = new MockElasticClient(); var indexer = new ElasticFilterLogIndexer <SearchDocument>("my-index", mockElasticClient.ElasticClient, (tfr) => new SearchDocument(tfr.TransactionHash, tfr.LogIndex)); var log = TestData.Contracts.StandardContract.SampleTransferLog(); await indexer.IndexAsync(log); Assert.Single(mockElasticClient.BulkRequests); var searchDoc = mockElasticClient.GetFirstBulkOperation().GetBody() as SearchDocument; Assert.Equal(log.TransactionHash, searchDoc.TransactionHash); Assert.Equal(log.LogIndex.Value.ToString(), searchDoc.LogIndex); }
public async Task MapsFilterLogToGenericSearchDocument() { var mockElasticClient = new MockElasticClient(); var indexer = new ElasticFilterLogIndexer("my-index", mockElasticClient.ElasticClient); var filterLog = new FilterLog { BlockNumber = new Hex.HexTypes.HexBigInteger(4309), TransactionHash = "0x3C81039C578811A85742F2476DA90E363A88CA93763DB4A194E35367D9A72FD8", LogIndex = new Hex.HexTypes.HexBigInteger(9) }; await indexer.IndexAsync(filterLog); var bulkRequest = mockElasticClient.BulkRequests.FirstOrDefault(); Assert.Single(bulkRequest.Operations); var searchDocument = bulkRequest.Operations.First().GetBody() as GenericSearchDocument; Assert.Equal(filterLog.Key(), searchDocument[PresetSearchFieldName.log_key.ToString()]); }