コード例 #1
0
        public async Task AfterSubscribe_AddFiles_AddToIndex(int initCount, int count)
        {
            var searcher  = new Mock <ISearcher <string, string> >();
            var tokenizer = new Mock <ITokenizer <string> >();
            var indexer   = new Mock <IIndexer <string, string> >();

            var analyzer = new FileAnalyzer(tokenizer.Object, searcher.Object, indexer.Object);

            using var tmp = new TempFolder(initCount);
            foreach (var file in tmp.Files)
            {
                indexer.Setup(x => x.Add(file, It.IsAny <IEnumerable <string> >()));
            }

            await analyzer.Subscribe(tmp.FolderPath);

            tmp.CreateFiles(count);
            await Task.Delay(10 *count);

            SpinWait.SpinUntil(() => !analyzer.IsIndexing);

            indexer.Verify(x => x.Add(It.IsAny <string>(), It.IsAny <IEnumerable <string> >()), Times.Exactly(initCount + count));

            foreach (var file in tmp.Files)
            {
                indexer.Verify(x => x.Add(file, It.IsAny <IEnumerable <string> >()), Times.Once);
            }
        }