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); }
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); }
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); } }