Example #1
0
        public async Task GetNewFiles_2Changed_ShouldFind6NewFiles()
        {
            var folder = new CrawledFolder {
                Name = "FileFolder"
            };
            ICollection <File> existingFiles = new List <File>
            {
                Helper.GetFileModel("FileFolder", "test1.txt"),
                Helper.GetFileModel("FileFolder", "test2.txt")
            };

            var fileRepositoryMock = new Mock <IFileRepository>();

            fileRepositoryMock.Setup(x => x.GetFilesForFolder(It.IsAny <Guid>()))
            .Returns(Task.FromResult(Result <ICollection <File> > .Success(existingFiles)));

            var fileCollector = new FileCollector(fileRepositoryMock.Object, folder);
            await fileCollector.CollectFiles();

            Assert.AreEqual(6, fileCollector.NewFiles.Count);
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test1_changed.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test1_compressed.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test1_copy.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test3.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test4.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test5.txt"));
        }
Example #2
0
        private async Task ProcessChangedFiles(CrawledFolder folder, List <System.IO.FileInfo> changedFiles)
        {
            var queue = _workerQueueContainer.ToSendFiles.Writer;

            foreach (var changedFile in changedFiles)
            {
                var updatedFile = await _fileService.CreateUpdateFile(folder.Id, changedFile);

                if (updatedFile is object)
                {
                    if (await queue.WaitToWriteAsync())
                    {
                        await queue.WriteAsync(updatedFile);
                    }
                }
            }
        }
Example #3
0
        private async Task ProcessNewFiles(CrawledFolder folder, List <System.IO.FileInfo> newFiles)
        {
            var queue = _workerQueueContainer.ToSendFiles.Writer;

            foreach (var newFile in newFiles)
            {
                var createdFile = await _fileService.CreateNewFile(folder.Id, newFile);

                if (createdFile is object)
                {
                    WorkerLog.Instance.Debug($"Adding '{createdFile.Path}' to queue");
                    if (await queue.WaitToWriteAsync())
                    {
                        await queue.WriteAsync(createdFile);
                    }
                }
            }
        }
Example #4
0
        public async Task GetNewFiles_ShouldFind8NewFiles()
        {
            var folder = new CrawledFolder {
                Name = "FileFolder"
            };
            var fileRepositoryMock = new Mock <IFileRepository>();

            fileRepositoryMock.Setup(x => x.GetFilesForFolder(It.IsAny <Guid>()))
            .ReturnsAsync(() => Result <ICollection <File> > .Success(new List <File>()));

            var fileCollector = new FileCollector(fileRepositoryMock.Object, folder);
            await fileCollector.CollectFiles();


            Assert.AreEqual(8, fileCollector.NewFiles.Count);
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test1.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test1_changed.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test1_compressed.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test1_copy.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test2.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test3.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test4.txt"));
            Assert.IsTrue(fileCollector.NewFiles.Any(x => x.Name == "test5.txt"));
        }
Example #5
0
 public FileCollector Get(CrawledFolder folder)
 {
     return(new FileCollector(_fileRepository, folder));
 }
Example #6
0
 public FileCollector(IFileRepository fileRepository, CrawledFolder folder)
 {
     _fileRepository = fileRepository;
     _folder         = folder;
 }