public void FindSourceFiles() { var parFiles = Directory.EnumerateFiles(TestDir) .Select(x => new FileInfo(x)) .Where(x => x.Extension == ".par2") .Select(x => RecoveryFile.FromUri(new Uri(x.FullName))) .GroupBy(x => x.Name) .FirstOrDefault(); var sourceFiles = parFiles.SelectMany(x => x.GetSourceList()).Distinct(x => x.ID).ToList(); sourceFiles.ForEach(x => { var location = new Uri(new Uri(TestDir + "\\", UriKind.Absolute), x.Location); if (File.Exists(location.AbsolutePath)) { x.Location = location; } }); var testPath = Path.Combine(TestDir, @"test\VK5v0qUjGhM0SvLLqYOfRjXY043XG04JVYRKjmKYj.part001.rar.tmp"); if (sourceFiles.First().Equals(File.Open(testPath, FileMode.Open, FileAccess.Read))) { sourceFiles.First().Location = new Uri(testPath, UriKind.Absolute); } Assert.AreNotEqual(0, sourceFiles.Count()); }
public void LoadRecoverySetWithNonExistingRelativePaths() { Environment.CurrentDirectory = TestDir + @".."; var parFiles = Directory.EnumerateFiles(TestDir) .Select(x => new FileInfo(x)) .Where(x => x.Extension == ".par2") .Select(x => RecoveryFile.FromUri(new Uri(x.Name, UriKind.Relative))) .GroupBy(x => x.Name) .FirstOrDefault(); Assert.AreEqual(false, parFiles.First().Location.IsAbsoluteUri); }
public void LoadRecoverySetWithAbsolutePaths() { var parFiles = Directory.EnumerateFiles(TestDir) .Select(x => new FileInfo(x)) .Where(x => x.Extension == ".par2") .Select(x => RecoveryFile.FromUri(new Uri(x.FullName))) .GroupBy(x => x.Name) .FirstOrDefault(); Assert.AreEqual(true, parFiles.First().Location.IsAbsoluteUri); Assert.AreEqual(TestDir, new FileInfo(parFiles.First().Location.AbsolutePath).DirectoryName); }
public void CreateRecoveryFileFromAbsoluteUri() { Uri uri = new Uri(new Uri(TestDir), TestFile); var r = RecoveryFile.FromUri(uri); Assert.AreEqual(true, r.Location.IsAbsoluteUri); Assert.AreEqual( uri, r.Location); Assert.AreEqual( new Range <long> { Minimum = 1, Maximum = 2 }, r.Exponents); }
public void CreateRecoveryFileFromRelativeUri() { Uri uri = new Uri(TestFile, UriKind.Relative); var r = RecoveryFile.FromUri(uri); Assert.AreEqual(false, r.Location.IsAbsoluteUri); Assert.AreEqual( uri, r.Location); Assert.AreEqual( new Range <long> { Minimum = 1, Maximum = 2 }, r.Exponents); }