public void Setup()
        {
            GivenAudioFiles(_audioFiles, 10);

            Mocker.GetMock <IDiskScanService>().Setup(c => c.GetBookFiles(It.IsAny <string>(), It.IsAny <bool>()))
            .Returns(_audioFiles.Select(x => DiskProvider.GetFileInfo(x)).ToArray());

            Mocker.GetMock <IDiskScanService>().Setup(c => c.FilterFiles(It.IsAny <string>(), It.IsAny <IEnumerable <IFileInfo> >()))
            .Returns <string, IEnumerable <IFileInfo> >((b, s) => s.ToList());

            Mocker.GetMock <IImportApprovedBooks>()
            .Setup(s => s.Import(It.IsAny <List <ImportDecision <LocalBook> > >(), true, null, ImportMode.Auto))
            .Returns(new List <ImportResult>());

            var downloadItem = Builder <DownloadClientItem> .CreateNew()
                               .With(v => v.DownloadId = "sab1")
                               .With(v => v.Status     = DownloadItemStatus.Downloading)
                               .Build();

            var remoteBook = Builder <RemoteBook> .CreateNew()
                             .With(v => v.Author = new Author())
                             .Build();

            _trackedDownload = new TrackedDownload
            {
                DownloadItem = downloadItem,
                RemoteBook   = remoteBook,
                State        = TrackedDownloadState.Downloading
            };
        }
예제 #2
0
        public void filter_should_return_existing_file_if_size_changed(FilterFilesType filter)
        {
            FileSystem.AddFile("C:\\file1.avi".AsOsAgnostic(), new MockFileData("".PadRight(10))
            {
                LastWriteTime = _lastWrite
            });
            FileSystem.AddFile("C:\\file2.avi".AsOsAgnostic(), new MockFileData("".PadRight(11))
            {
                LastWriteTime = _lastWrite
            });
            FileSystem.AddFile("C:\\file3.avi".AsOsAgnostic(), new MockFileData("".PadRight(10))
            {
                LastWriteTime = _lastWrite
            });

            var files = FileSystem.AllFiles.Select(x => DiskProvider.GetFileInfo(x)).ToList();

            Mocker.GetMock <IMediaFileRepository>()
            .Setup(c => c.GetFileWithPath(It.IsAny <List <string> >()))
            .Returns(new List <TrackFile>
            {
                new TrackFile
                {
                    Path     = "C:\\file2.avi".AsOsAgnostic(),
                    Size     = 10,
                    Modified = _lastWrite
                }
            });

            Subject.FilterUnchangedFiles(files, filter).Should().HaveCount(3);
            Subject.FilterUnchangedFiles(files, filter).Select(x => x.FullName).Should().Contain("C:\\file2.avi".AsOsAgnostic());
        }
예제 #3
0
        public void filter_unmatched_should_not_return_existing_file_if_matched(FilterFilesType filter)
        {
            FileSystem.AddFile("C:\\file1.avi".AsOsAgnostic(), new MockFileData("".PadRight(10))
            {
                LastWriteTime = _lastWrite
            });
            FileSystem.AddFile("C:\\file2.avi".AsOsAgnostic(), new MockFileData("".PadRight(10))
            {
                LastWriteTime = _lastWrite
            });
            FileSystem.AddFile("C:\\file3.avi".AsOsAgnostic(), new MockFileData("".PadRight(10))
            {
                LastWriteTime = _lastWrite
            });

            var files = FileSystem.AllFiles.Select(x => DiskProvider.GetFileInfo(x)).ToList();

            Mocker.GetMock <IMediaFileRepository>()
            .Setup(c => c.GetFilesWithBasePath(It.IsAny <string>()))
            .Returns(new List <TrackFile>
            {
                new TrackFile {
                    Path     = "C:\\file2.avi".AsOsAgnostic(),
                    Size     = 10,
                    Modified = _lastWrite,
                    Tracks   = Builder <Track> .CreateListOfSize(1).Build() as List <Track>
                }
            });

            Subject.FilterUnchangedFiles(files, _artist, filter).Should().HaveCount(2);
            Subject.FilterUnchangedFiles(files, _artist, filter).Select(x => x.FullName).Should().NotContain("C:\\file2.avi".AsOsAgnostic());
        }
예제 #4
0
        private void GivenAudioFiles(IEnumerable <string> videoFiles)
        {
            foreach (var file in videoFiles)
            {
                FileSystem.AddFile(file, new MockFileData(string.Empty));
            }

            _fileInfos = videoFiles.Select(x => DiskProvider.GetFileInfo(x)).ToList();
        }
예제 #5
0
        private List <IFileInfo> GivenFiles(string[] files)
        {
            foreach (var file in files)
            {
                FileSystem.AddFile(file, new MockFileData(string.Empty)
                {
                    LastWriteTime = _lastWrite
                });
            }

            return(files.Select(x => DiskProvider.GetFileInfo(x)).ToList());
        }
예제 #6
0
        private List <IFileInfo> GivenFiles(IEnumerable <string> files, DateTimeOffset?lastWrite = null)
        {
            if (lastWrite == null)
            {
                TestLogger.Debug("Using default lastWrite");
                lastWrite = new DateTime(2019, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            }

            foreach (var file in files)
            {
                FileSystem.AddFile(file, new MockFileData(string.Empty)
                {
                    LastWriteTime = lastWrite.Value
                });
            }

            return(files.Select(x => DiskProvider.GetFileInfo(x)).ToList());
        }