Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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)));
        }