public void DirectoryFileGuidPersist_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); using var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")).AsDisposable(); var file = dir.OpenFile("test.txt"); var guid = file.FileGuid; Assert.NotEqual(Guid.Empty, guid); file.OpenStream().Close(); Assert.Equal(dir.OpenFile("test.txt").FileGuid, guid); }
public void DirectoryManifestRemove_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); using var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")).AsDisposable(); var file = dir.OpenFile("test.txt"); file.Delete(); var newFile = dir.OpenFile("test.txt"); Assert.NotEqual(newFile.FileGuid, file.FileGuid); // Assert.True(dir.Manifest.ContainsKey("test.txt")); }
public void DirectoryMoveFromManagedAndRename_Test() { var fs = new PhysicalFileSystem(); var fs2 = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var dir2 = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); var file = dir.OpenFile(tempFile); Guid oldGuid = file.FileGuid; using (var str = file.OpenStream()) { str.WriteByte(255); }// safe the file var newFile = dir2.MoveFrom(file, "newNonConflictingName", false); Assert.Throws <FileNotFoundException>(() => dir2.MoveFrom(file)); Assert.Equal(1, newFile.Length); Assert.False(file.Created); Assert.False(dir.ContainsFile(file.Name)); Assert.True(newFile.Created); Assert.Equal(newFile.FileGuid, file.FileGuid); Assert.Equal(newFile.FileGuid, dir2.OpenFile("newNonConflictingName").FileGuid); }
public async Task DirectoryCopyFromAsyncManaged_Test() { var fs = new PhysicalFileSystem(); var fs2 = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var dir2 = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); var file = dir.OpenFile(tempFile); Assert.NotEqual(Guid.Empty, file.FileGuid); using (var str = file.OpenStream()) { str.WriteByte(255); }// safe the file var file2 = await dir2.CopyFromAsync(file); Assert.Equal(file.FileGuid, file2.FileGuid); Assert.True(file.Created); Assert.Equal(1, file2.Length); await Assert.ThrowsAsync <IOException>(async() => await dir2.CopyFromAsync(file)); Assert.Equal(1, (await dir2.CopyFromAsync(file, true)).Length); }
public void DirectoryCopyFromManaged_Test() { var fs = new PhysicalFileSystem(); var fs2 = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var dir2 = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); var file = dir.OpenFile(tempFile); using (var str = file.OpenStream()) { str.WriteByte(255); }// safe the file var file2 = dir2.CopyFrom(file); Assert.Equal(file.FileGuid, file2.FileGuid); Assert.Equal(1, file2.Length); Assert.Throws <IOException>(() => dir2.CopyFrom(file)); Assert.Equal(1, dir2.CopyFrom(file, true).Length); }
public void DirectoryMoveFromManaged_Test() { var fs = new PhysicalFileSystem(); var fs2 = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory("test", pfs, pfs.GetDirectoryEntry("/")); var dir2 = new FS.Directory("test2", pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); var file = dir.OpenFile(tempFile); Guid oldGuid = file.FileGuid; Assert.True(dir.ContainsFile(".manifest")); using (var str = file.OpenStream()) { str.WriteByte(255); }// safe the file var file2 = dir2.CopyFrom(file); Assert.Throws <IOException>(() => dir2.MoveFrom(file)); Assert.Equal(1, dir2.MoveFrom(file, true).Length); Assert.Equal(oldGuid, file2.FileGuid); Assert.Equal(1, file2.Length); Assert.False(file.Created); Assert.False(dir.ContainsFile(file.Name)); }
public void DirectoryManifestRemove_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory("test", pfs, pfs.GetDirectoryEntry("/")); var file = dir.OpenFile("test.txt"); Assert.True(dir.ContainsFile(".manifest")); Assert.Equal(file.FileGuid, dir.RetrieveManifestRecord(dir.ThisDirectory.Path / Path.GetFileName("test.txt"), false).guid); file.Delete(); var newFile = dir.OpenFile("test.txt"); Assert.NotEqual(newFile.FileGuid, file.FileGuid); // Assert.True(dir.Manifest.ContainsKey("test.txt")); }
public void LinkRename_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory("test", pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); var tempFile2 = Path.GetTempFileName(); using (var str = new FileInfo(tempFile).OpenWrite()) { str.WriteByte(255); } var link = dir.LinkFrom(new FileInfo(tempFile)); Guid oldGuid = link.FileGuid; Assert.True(dir.ContainsFile(".manifest")); link.Rename(tempFile2); Assert.Equal(Path.GetFileName(tempFile2), link.Name); Assert.Equal(link.FileGuid, dir.OpenFile(tempFile2).FileGuid); Assert.True(new FileInfo(tempFile).Exists); }
public void LinkOverwritesCreatedFile_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory("test", pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); using (var str = new FileInfo(tempFile).OpenWrite()) { str.WriteByte(255); } var file = dir.OpenFile(tempFile); using (var f = file.OpenStream()) { f.WriteByte(254); } Assert.Throws <IOException>(() => dir.LinkFrom(new FileInfo(tempFile))); var link = dir.LinkFrom(new FileInfo(tempFile), true); Assert.IsAssignableFrom <Link>(link); using (var str = link.OpenReadStream()) { Assert.Equal(255, str.ReadByte()); } Assert.Equal(file.FileGuid, link.FileGuid); }
public void DirectoryManifestCreated_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory("test", pfs, pfs.GetDirectoryEntry("/")); dir.OpenFile("test.txt"); Assert.True(dir.ContainsFile(".manifest")); }
public void FileRename_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); var tempFile2 = Path.GetTempFileName(); var file = dir.OpenFile(tempFile); Guid oldGuid = file.FileGuid; using (var str = file.OpenStream()) { str.WriteByte(255); }// safe the file file.Rename(tempFile2); Assert.Equal(Path.GetFileName(tempFile2), file.Name); Assert.Equal(file.FileGuid, dir.OpenFile(tempFile2).FileGuid); }
public void DirectoryRecursiveFileOpen_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")); var file = dir.OpenFile("test.txt"); file.OpenStream().Close(); dir.OpenDirectory(Path.GetRandomFileName()).OpenFile("test2.txt").OpenStream().Close(); var iter = dir.EnumerateFilesRecursive(); Assert.True(iter.Count() >= 2); }
public void LinkFromFile_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var unmanagedFile = Path.GetTempFileName(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); using var dir = new FS.Directory(Path.GetRandomFileName(), pfs, pfs.GetDirectoryEntry("/")).AsDisposable(); System.IO.File.WriteAllText(unmanagedFile, "Hello World!"); var linkedFile = dir.LinkFrom(new FileInfo(unmanagedFile)); Assert.Equal("Hello World!", linkedFile.ReadAllText()); Assert.Equal(linkedFile.FileGuid, dir.OpenFile(Path.GetFileName(unmanagedFile)).FileGuid); }
public void DirectoryRecursiveFileOpen_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory("test", pfs, pfs.GetDirectoryEntry("/")); var file = dir.OpenFile("test.txt"); Assert.True(dir.ContainsFile(".manifest")); Assert.Equal(file.FileGuid, dir.GetGuid("test.txt")); file.OpenStream().Close(); dir.OpenDirectory("next_test").OpenFile("test2.txt").OpenStream().Close(); var iter = dir.EnumerateFilesRecursive(); Assert.True(iter.Count() >= 2); }
public void DirectoryCopyFromFileInfo_Test() { var fs = new PhysicalFileSystem(); var temp = Path.GetTempPath(); var pfs = fs.GetOrCreateSubFileSystem(fs.ConvertPathFromInternal(temp)); var dir = new FS.Directory("test", pfs, pfs.GetDirectoryEntry("/")); var tempFile = Path.GetTempFileName(); var file = dir.OpenFile(tempFile); Assert.True(dir.ContainsFile(".manifest")); using (var str = file.OpenStream()) { str.WriteByte(255); }// safe the file Assert.Throws <IOException>(() => dir.CopyFrom(new FileInfo(tempFile))); Assert.Equal(0, dir.CopyFrom(new FileInfo(tempFile), true).Length); }