public void should_not_delete_if_no_files_were_imported() { GivenValidAuthor(); var localTrack = new LocalBook(); var imported = new List <ImportDecision <LocalBook> >(); imported.Add(new ImportDecision <LocalBook>(localTrack)); Mocker.GetMock <IMakeImportDecision>() .Setup(v => v.GetImportDecisions(It.IsAny <List <IFileInfo> >(), It.IsAny <IdentificationOverrides>(), It.IsAny <ImportDecisionMakerInfo>(), It.IsAny <ImportDecisionMakerConfig>())) .Returns(imported); Mocker.GetMock <IImportApprovedBooks>() .Setup(s => s.Import(It.IsAny <List <ImportDecision <LocalBook> > >(), true, null, ImportMode.Auto)) .Returns(new List <ImportResult>()); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); DiskProvider.FolderExists(_subFolders[0]).Should().BeTrue(); Mocker.GetMock <IDiskProvider>() .Verify(v => v.DeleteFolder(It.IsAny <string>(), true), Times.Never()); }
public void should_not_delete_folder_if_files_were_imported_and_audio_files_remain() { GivenValidAuthor(); var localTrack = new LocalBook(); var imported = new List <ImportDecision <LocalBook> >(); imported.Add(new ImportDecision <LocalBook>(localTrack)); Mocker.GetMock <IMakeImportDecision>() .Setup(v => v.GetImportDecisions(It.IsAny <List <IFileInfo> >(), It.IsAny <IdentificationOverrides>(), It.IsAny <ImportDecisionMakerInfo>(), It.IsAny <ImportDecisionMakerConfig>())) .Returns(imported); Mocker.GetMock <IImportApprovedBooks>() .Setup(s => s.Import(It.IsAny <List <ImportDecision <LocalBook> > >(), true, null, ImportMode.Auto)) .Returns(imported.Select(i => new ImportResult(i)).ToList()); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock <IDiskProvider>() .Verify(v => v.DeleteFolder(It.IsAny <string>(), true), Times.Never()); ExceptionVerification.ExpectedWarns(1); }
public void should_not_delete_if_there_is_large_rar_file() { GivenValidAuthor(); var localTrack = new LocalBook(); var imported = new List <ImportDecision <LocalBook> >(); imported.Add(new ImportDecision <LocalBook>(localTrack)); Mocker.GetMock <IMakeImportDecision>() .Setup(v => v.GetImportDecisions(It.IsAny <List <IFileInfo> >(), It.IsAny <IdentificationOverrides>(), It.IsAny <ImportDecisionMakerInfo>(), It.IsAny <ImportDecisionMakerConfig>())) .Returns(imported); Mocker.GetMock <IImportApprovedBooks>() .Setup(s => s.Import(It.IsAny <List <ImportDecision <LocalBook> > >(), true, null, ImportMode.Auto)) .Returns(imported.Select(i => new ImportResult(i)).ToList()); GivenAudioFiles(new[] { _audioFiles.First().Replace(".ext", ".rar") }, 15.Megabytes()); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); DiskProvider.FolderExists(_subFolders[0]).Should().BeTrue(); ExceptionVerification.ExpectedWarns(1); }
public void should_not_delete_folder_if_no_files_were_imported() { Mocker.GetMock <IImportApprovedBooks>() .Setup(s => s.Import(It.IsAny <List <ImportDecision <LocalBook> > >(), false, null, ImportMode.Auto)) .Returns(new List <ImportResult>()); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock <IDiskProvider>() .Verify(v => v.GetFolderSize(It.IsAny <string>()), Times.Never()); }
public void should_not_skip_if_no_author_found() { Mocker.GetMock <IParsingService>().Setup(c => c.GetAuthor("foldername")).Returns((Author)null); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock <IMakeImportDecision>() .Verify(c => c.GetImportDecisions(It.IsAny <List <IFileInfo> >(), It.IsAny <IdentificationOverrides>(), It.IsAny <ImportDecisionMakerInfo>(), It.IsAny <ImportDecisionMakerConfig>()), Times.Once()); VerifyImport(); }
public void should_skip_if_no_artist_found() { Mocker.GetMock <IParsingService>().Setup(c => c.GetArtist("foldername")).Returns((Artist)null); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock <IMakeImportDecision>() .Verify(c => c.GetImportDecisions(It.IsAny <List <IFileInfo> >(), It.IsAny <Artist>(), It.IsAny <ParsedTrackInfo>()), Times.Never()); VerifyNoImport(); }
public void should_remove_unpack_from_folder_name(string prefix) { var folderName = "Alien Ant Farm - Truant (2003)"; FileSystem.AddDirectory(string.Format(@"C:\drop\{0}{1}", prefix, folderName).AsOsAgnostic()); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock <IParsingService>() .Verify(v => v.GetAuthor(folderName), Times.Once()); Mocker.GetMock <IParsingService>() .Verify(v => v.GetAuthor(It.Is <string>(s => s.StartsWith(prefix))), Times.Never()); }
public void should_skip_if_file_is_in_use_by_another_process() { GivenValidAuthor(); foreach (var file in _audioFiles) { FileSystem.AddFile(file, new MockFileData("".PadRight(10)) { AllowedFileShare = FileShare.None }); } Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); VerifyNoImport(); }
public void should_not_import_if_folder_is_a_author_path() { GivenValidAuthor(); Mocker.GetMock <IAuthorService>() .Setup(s => s.AuthorPathExists(It.IsAny <string>())) .Returns(true); Mocker.GetMock <IDiskScanService>() .Setup(c => c.GetBookFiles(It.IsAny <string>(), It.IsAny <bool>())) .Returns(new IFileInfo[0]); Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock <IDiskScanService>() .Verify(v => v.GetBookFiles(It.IsAny <string>(), true), Times.Never()); ExceptionVerification.ExpectedWarns(1); }
public void should_search_for_author_using_folder_name() { Subject.ProcessRootFolder(DiskProvider.GetDirectoryInfo(_droneFactory)); Mocker.GetMock <IParsingService>().Verify(c => c.GetAuthor("foldername"), Times.Once()); }