Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public async Task FileOverwritesLinkAsync_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 = await dir.CopyFromAsync(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);
        }