public async Task MapsEventDtoToSearchDocument()
        {
            var mockSearchIndexClient = new MockElasticClient();

            var indexer = new ElasticEventIndexer <TransferEvent, SearchDocument>("transfers",
                                                                                  mockSearchIndexClient.ElasticClient, (tfr) => new SearchDocument(tfr.Log.TransactionHash, tfr.Log.LogIndex));

            var eventLog = TestData.Contracts.StandardContract.SampleTransferEventLog();

            await indexer.IndexAsync(eventLog);

            Assert.Single(mockSearchIndexClient.BulkRequests);
            var actualSearchDocument = mockSearchIndexClient.GetFirstBulkOperation().GetBody() as SearchDocument;

            Assert.Equal(eventLog.Log.TransactionHash, actualSearchDocument.TransactionHash);
            Assert.Equal(eventLog.Log.LogIndex.Value.ToString(), actualSearchDocument.LogIndex);
        }
예제 #2
0
        public async Task MapsEventDtoToGenericSearchDocument()
        {
            var indexDefinition   = new EventIndexDefinition <TransferEvent>();
            var mockElasticClient = new MockElasticClient();

            var indexer = new ElasticEventIndexer <TransferEvent>(
                "Transfers", mockElasticClient.ElasticClient, indexDefinition);

            var eventLog = TestData.Contracts.StandardContract.SampleTransferEventLog();

            await indexer.IndexAsync(eventLog);

            Assert.Single(mockElasticClient.BulkRequests);
            var actualOperation = mockElasticClient.GetFirstBulkOperation();

            Assert.NotNull(actualOperation);
            Assert.Equal("index", actualOperation.Operation);
            Assert.Equal(typeof(GenericSearchDocument), actualOperation.ClrType);
        }