static void Main(string[] args) { var fileSystem = new FileSystem(); var extensions = ((FileSystemConfigurationSection)ConfigurationManager.GetSection("fileSystem")).Extensions .Cast <ExtensionElement>().Select(e => e.Value).ToArray(); var collectionPaths = ((AnalyserConfigurationSection)ConfigurationManager.GetSection("analyser")).CollectionPaths .Cast <CollectionPathElement>().Select(e => e.Value).ToArray(); var collectionMarker = ((AnalyserConfigurationSection)ConfigurationManager.GetSection("analyser")).CollectionMarker; var analyser = new FileAnalyser(collectionPaths, fileSystem, collectionMarker); Container.GetInstance().Add(new RegisteredType().For <Mp3File>().BasedOn <IMp3Stream>().With(LifeStyle.Transient).IdentifiedBy(analyser.Mp3IocKey)); fileSystem.ExtensionsRead += FileSystem_ExtensionsRead; fileSystem.DirectoryRead += FileSystem_DirectoryRead; analyser.AnalyserProgress += Analyser_AnalyserProgress; var runner = new Runner(fileSystem, args[0], extensions, analyser, args[1]); var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; cancellationToken.Register(runner.Stop); Task runTask = new Task(runner.Start, cancellationToken); runTask.Start(); Console.ReadKey(); runner.Stop(); }
public void AnalyseFileNoMp3Stream() { var collectionPaths = new string[] { "..", "abc" }; var FileSystemMock = MockRepository.GenerateStub <IFileSystem>(); FileSystemMock.Expect(m => m.DirectoriesExist(collectionPaths)).Return(true); var fileAnalyser = new FileAnalyser(collectionPaths, FileSystemMock, "some marker"); Assert.That(() => fileAnalyser.AnalyseFile(null, default(string)), Throws.ArgumentNullException); }
public void FileAnalyserCollectionMarkerOk() { var collectionPaths = new string[] { "..", "abc" }; var FileSystemMock = MockRepository.GenerateStub <IFileSystem>(); FileSystemMock.Expect(m => m.DirectoriesExist(collectionPaths)).Return(true); var fileAnalyser = new FileAnalyser(collectionPaths, FileSystemMock, "some marker"); Assert.AreEqual("some marker", fileAnalyser.CollectionMarker); }
public void AnalyseFileWrongFilePath() { var collectionPaths = new string[] { "..", "abc" }; var FileSystemMock = MockRepository.GenerateStub <IFileSystem>(); FileSystemMock.Expect(m => m.DirectoriesExist(collectionPaths)).Return(true); FileSystemMock.Expect(m => m.FileExists("myownfile.mp3")).Return(false); var mp3FileMock = MockRepository.GenerateStub <IMp3Stream>(); var fileAnalyser = new FileAnalyser(collectionPaths, FileSystemMock, "some marker"); Assert.That(() => fileAnalyser.AnalyseFile(mp3FileMock, "myownfile.mp3"), Throws.ArgumentException); }
public void FileAnalyserCollectionPathsOk() { var collectionPaths = new string[] { "..", "abc" }; var FileSystemMock = MockRepository.GenerateStub <IFileSystem>(); FileSystemMock.Expect(m => m.DirectoriesExist(collectionPaths)).Return(true); var fileAnalyser = new FileAnalyser(collectionPaths, FileSystemMock, "some marker"); for (int i = 0; i < collectionPaths.Length; i++) { Assert.AreEqual(collectionPaths[i], fileAnalyser.CollectionPaths[i]); } }
public void EmtpyList() { Mock <ILineReader> lineReaderMock = new Mock <ILineReader>(); lineReaderMock.Setup(x => x.GetLines(It.IsAny <string>())).Returns(new List <string>()); FileAnalyser f = new FileAnalyser(loggerMock.Object, lineReaderMock.Object); f.AnalyzeLines(new FileDetails("", 0)); Assert.AreEqual(f.TotalLines, 0); Assert.AreEqual(f.TotalEmptyLines, 0); Assert.AreEqual(f.TotalDashLines, 0); }
public void ThreeDifferentLines() { Mock <ILineReader> lineReaderMock = new Mock <ILineReader>(); lineReaderMock.Setup(x => x.GetLines(It.IsAny <string>())).Returns(new List <string>() { "", "--Test Line", "Normal Line" }); FileAnalyser f = new FileAnalyser(loggerMock.Object, lineReaderMock.Object); f.AnalyzeLines(new FileDetails("", 0)); Assert.AreEqual(f.TotalLines, 3); Assert.AreEqual(f.TotalEmptyLines, 1); Assert.AreEqual(f.TotalDashLines, 1); }
public void AnalyseFileTagShouldbeInCollectionMarkedWrong() { var collectionPaths = new string[] { "..", "abc" }; var FileSystemMock = MockRepository.GenerateStub <IFileSystem>(); FileSystemMock.Expect(m => m.DirectoriesExist(collectionPaths)).Return(true); FileSystemMock.Expect(m => m.FileExists(@"..\myownfile.mp3")).Return(true); var fileAnalyser = new FileAnalyser(collectionPaths, FileSystemMock, "some marker"); var mp3FileMock = MockRepository.GenerateStub <IMp3Stream>(); var mockTitleFrame = MockRepository.GenerateStub <TitleFrame>(); mockTitleFrame.TextValue = "my song"; var mockAlbumFrame = MockRepository.GenerateStub <AlbumFrame>(); mockAlbumFrame.TextValue = "my album"; var mockId3Tag = MockRepository.GenerateStub <IId3Tag>(); mockId3Tag.Stub(m => m.Artists).Return(new ArtistsFrame { Value = { "my artist" } }); mockId3Tag.Stub(m => m.Title).Return(mockTitleFrame); mockId3Tag.Stub(m => m.Album).Return(mockAlbumFrame); mockId3Tag.Stub(m => m.Band).Return(new BandFrame { Value = "some other marker" }); mp3FileMock.Expect(m => m.HasTags).Return(true); mp3FileMock.Expect(m => m.AvailableTagVersions).Return(new Version[] { new Version(3, 1) }); mp3FileMock.Expect(m => m.GetTag(3, 1)).Return(mockId3Tag); var fileAnalysed = fileAnalyser.AnalyseFile(mp3FileMock, @"..\myownfile.mp3"); Assert.AreEqual(fileAnalysed.Album, "my album"); Assert.AreEqual(fileAnalysed.Artist, "my artist"); Assert.AreEqual(fileAnalysed.Title, "my song"); Assert.AreEqual(fileAnalysed.FilePath, @"..\myownfile.mp3"); Assert.True(fileAnalysed.InCollectionPath); Assert.False(fileAnalysed.MarkedAsPartOfCollection); Assert.False(fileAnalysed.Id3TagIncomplete); }