public DuplicateCleanerTests()
        {
            var uniqueFileRegistry = new Mock <IUniqueFilesRegistry>(MockBehavior.Strict);

            uniqueFileRegistry.Setup(r => r.Contains(It.IsAny <FileInfo>()))
            .Returns <FileInfo>(info => _uniqueNames.Contains(info.Name));
            uniqueFileRegistry.Setup(r => r.Add(It.IsAny <FileInfo>()))
            .Callback <FileInfo>(info => _uniqueNames.Add(info.Name));


            var backedUpFileRegistry = new Mock <IBackedUpFilesRegistry>(MockBehavior.Strict);

            backedUpFileRegistry.Setup(r => r.AddAsync(It.IsAny <FileInfo>()))
            .Callback <FileInfo>(info => _backedUpNames.Add(info.Name))
            .Returns <FileInfo>(info => Task.Run(() => info.Name));

            var fileNamesProvider = new Mock <IFileSystemEntityProvider>(MockBehavior.Strict);

            fileNamesProvider.Setup(p => p.GetDescendantPaths(It.IsAny <string>()))
            .Returns <string>(path => _fileNamesGenerator(path));

            var folderNamesProvider = new Mock <IFileSystemEntityProvider>(MockBehavior.Strict);

            folderNamesProvider.Setup(p => p.GetDescendantPaths(It.IsAny <string>()))
            .Returns <string>(path => _folderNamesGenerator(path));

            _cleaner = new DuplicateCleaner(uniqueFileRegistry.Object, backedUpFileRegistry.Object, fileNamesProvider.Object, folderNamesProvider.Object);
        }
Exemplo n.º 2
0
        public void CleanupTest()
        {
            var input = new List <ItemDescriptor>
            {
                new DirectoryDescriptor(@"D:\DIR\proj1", ".git"),
                new FileDescriptor(@"D:\DIR\proj2", "solution.sln"),
                new DirectoryDescriptor(@"D:\DIR\proj3", ".git"),
                new FileDescriptor(@"D:\DIR\proj3", "solution.sln"),
                new DirectoryDescriptor(@"D:\DIR\proj4", ".git"),
                new FileDescriptor(@"D:\DIR\proj4\subdir", "solution.sln"),
            };

            var sut    = new DuplicateCleaner();
            var result = sut.Clean(input);

            var expected = new List <ItemDescriptor>
            {
                new DirectoryDescriptor(@"D:\DIR\proj1", ".git"),
                new FileDescriptor(@"D:\DIR\proj2", "solution.sln"),
                new FileDescriptor(@"D:\DIR\proj3", "solution.sln"),
                new DirectoryDescriptor(@"D:\DIR\proj4", ".git"),
                new FileDescriptor(@"D:\DIR\proj4\subdir", "solution.sln"),
            };

            CollectionAssert.AreEqual(expected, result);
        }
Exemplo n.º 3
0
        public void Execute()
        {
            using (var backupManager = new BackupDirectoryManager(_rootFolder, _backupFolder))
            {
                backupManager.CreateBackupDirectory();
                var backedUpFileRegistry = new BackedUpFilesRegistry(backupManager);
                var folderNamesProvider  = new DirectoryProvider(backupManager.BackupRoot);

                var cleaner = new DuplicateCleaner(
                    new UniqueFilesRegistry(),
                    backedUpFileRegistry,
                    new FileProvider(),
                    folderNamesProvider);

                cleaner.Clean(_rootFolder);
            }
        }