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 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); }
public void FileOverwritesLink_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 link = dir.LinkFrom(new FileInfo(tempFile), true); using (var str = link.OpenReadStream()) { Assert.Equal(255, str.ReadByte()); } Assert.Throws <IOException>(() => dir.CopyFrom(new FileInfo(tempFile))); var file = dir.CopyFrom(new FileInfo(tempFile), true); using (var f = file.OpenStream(FileMode.Create, FileAccess.Write)) { f.WriteByte(254); } using (var f = file.OpenReadStream()) using (var s = new FileInfo(tempFile).OpenRead()) { var fbyte = f.ReadByte(); var abyte = s.ReadByte(); Assert.NotEqual(fbyte, abyte); Assert.Equal(254, fbyte); Assert.Equal(255, abyte); } Assert.Equal(file.FileGuid, link.FileGuid); }
public void DirectoryLinkFromFileInfo_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 link = dir.LinkFrom(new FileInfo(tempFile)); using (var str = link.OpenReadStream()) { Assert.Equal(255, str.ReadByte()); } Assert.Throws <IOException>(() => dir.CopyFrom(new FileInfo(tempFile))); Assert.True(dir.ContainsFile(Path.GetFileName(tempFile))); }