public async Task ShouldIndexDocuments()
        {
            // Arrange
            var fixture = new TestFixture <IndexFragmentCommandHandler>();
            var repo    = fixture.Freeze <ITokensRepository>();

            var tokens = new[]
            {
                new Token {
                    Tag = "first"
                },
                new Token {
                    Tag = "second"
                }
            };
            var command = new IndexFragmentCommand("doc", "file", FileExtension.Txt, 0, 10, tokens);

            // Act
            await fixture.Sut.Handle(command, CancellationToken.None);

            // Assert
            await repo.Received()
            .AddDocumentToTokenAsync(
                Arg.Is <DocumentEntity>(d => d.Id == "doc" && d.Name == "file" && d.Extension == "Txt"), "first",
                CancellationToken.None);

            await repo.Received()
            .AddDocumentToTokenAsync(
                Arg.Is <DocumentEntity>(d => d.Id == "doc" && d.Name == "file" && d.Extension == "Txt"), "second",
                CancellationToken.None);
        }
Exemple #2
0
        public async Task IndexFragment(
            [RabbitMQTrigger(QueueName.Indexer, ConnectionStringSetting = "RabbitMQ:ConnectionString")]
            FragmentTokenizedEvent message,
            ILogger logger)
        {
            logger.LogInformation($"Start indexing for: {message.UploadId}");

            var command = new IndexFragmentCommand(message.UploadId, message.FileName, message.Extension,
                                                   message.Offset, message.Length,
                                                   message.Tokens);

            var output = await _mediator.Send(command);
        }