public void WriteReopenReadTest() { using (var f = new TestPhysicalFile()) { var testString = "TestContent1234567890"; var bytes = Encoding.UTF8.GetBytes(testString); var length = bytes.Length; using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { using (var stream = fs.GetRoot().CreateFile("TestFile.txt") .Open(FileMode.OpenOrCreate, FileAccess.ReadWrite)) { Assert.IsTrue(stream.CanWrite, "Stream does not allow writing"); stream.Write(bytes, 0, bytes.Length); Assert.AreEqual(length, stream.Position, "Stream position is wrong"); } } using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { using (var stream = fs.GetRoot().GetFiles().First().Open(FileMode.Open, FileAccess.Read)) { Assert.AreEqual(length, stream.Length, "Stream length is wrong"); Assert.IsFalse(stream.CanWrite, "Stream should not allow writing"); var buffer = new byte[4096]; var readBytesCount = stream.Read(buffer, 0, (int)stream.Length); Assert.AreEqual(length, readBytesCount, "Wrong bytes number is read"); var readBytes = buffer.Take(readBytesCount).ToArray(); var readString = Encoding.UTF8.GetString(readBytes); Assert.AreEqual(testString, readString, "Read string is wrong"); } } } }
internal BaseVirtualEntity(InternalFileSystem fileSystem, BaseEntry entry) { _entry = entry; FileSystem = fileSystem; Id = entry.Id; CreatedAt = entry.CreationTime; }
public async Task MoveFileTest() { using (var f = new TestPhysicalFile()) { var testString = "1234567890"; var dirAname = "dir_A"; var dirBname = "dir_B"; var filename = "testfile.txt"; using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var file = fs.GetRoot().CreateDirectory(dirAname).CreateFile(filename); file.WriteAllText(testString); var dirB = fs.GetRoot().CreateDirectory(dirBname); await file.MoveTo(dirB, args => { }, CancellationToken.None); } using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var dirA = fs.GetRoot().GetDirectories(false, dirAname).FirstOrDefault(); Assert.IsNotNull(dirA, "Created directory A not found"); var dirB = fs.GetRoot().GetDirectories(false, dirBname).FirstOrDefault(); Assert.IsNotNull(dirB, "Created directory B not found"); var aFiles = dirA.GetFiles().ToArray(); var bFiles = dirB.GetFiles().ToArray(); Assert.AreEqual(0, aFiles.Length, "Dir A should not contain any files"); Assert.AreEqual(1, bFiles.Length, "Dir B should contain 1 file"); var bFileName = VirtualPath.GetFileName(bFiles[0].Name); Assert.AreEqual(filename, bFileName, "File names mismatch"); var BfileContent = bFiles[0].ReadAllText(); Assert.AreEqual(testString, BfileContent, "File B content mismatch"); } } }
public void T06_CreateDirectoryTest() { using (var f = new TestPhysicalFile()) using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var directory = fs.GetRoot().CreateDirectory("testDirectory"); Assert.IsNotNull(directory, "Unable to create a directory"); Assert.AreEqual($"{VirtualPath.Separator}testDirectory", directory.Name, "Created directory has wrong name"); } }
public void T04_CreateFileTest() { using (var f = new TestPhysicalFile()) using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var file = fs.GetRoot().CreateFile("testfile.txt"); Assert.IsNotNull(file, "Unable to create a file"); Assert.AreEqual($"{VirtualPath.Separator}testfile.txt", file.Name, "Created file has wrong name"); } }
public void T02_RootTest() { using (var f = new TestPhysicalFile()) using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var root = fs.GetRoot(); Assert.IsNotNull(root, "Unable to get root directory"); Assert.AreEqual(string.Empty, root.Name, "Root directory has wrong name"); } }
public void T01_InitializeTest() { using (var f = new TestPhysicalFile()) using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { Assert.IsTrue(File.Exists(f.Filename), "FS file was not created"); var file = new FileInfo(f.Filename); Assert.IsTrue(file.Length > 0, "FS file is empty"); } }
public void T11_RenameDirectoryReopenTest() { using (var f = new TestPhysicalFile()) { using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var directory = fs.GetRoot().CreateDirectory("testDirectory"); directory.Name = "renamedDirectory"; } using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var directory = fs.GetRoot().GetDirectories().FirstOrDefault(); Assert.IsNotNull(directory, "Unable to get saved directory"); Assert.AreEqual($"{VirtualPath.Separator}renamedDirectory", directory.Name, "Saved directory has wrong name"); } } }
public void T09_RenameFileReopenTest() { using (var f = new TestPhysicalFile()) { using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var file = fs.GetRoot().CreateFile("testfile.txt"); file.Name = "renamedfile.txt"; } using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var file = fs.GetRoot().GetFiles().FirstOrDefault(); Assert.IsNotNull(file, "Unable to get saved file"); Assert.AreEqual($"{VirtualPath.Separator}renamedfile.txt", file.Name, "Saved file has wrong name"); } } }
public void T05_CreateFilesAndReopenTest() { using (var f = new TestPhysicalFile()) { using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { for (var i = 0; i < 100; i++) { fs.GetRoot().CreateFile($"testfile{i}.txt"); } } using (var fs = new InternalFileSystem(SynchronizationContext.Current, f.Filename, VirtualDriveParameters.Default)) { var files = fs.GetRoot().GetFiles().ToList(); Assert.AreEqual(100, files.Count, "Unable to get saved files"); for (var i = 0; i < 100; i++) { var file = files[i]; Assert.AreEqual($"{VirtualPath.Separator}testfile{i}.txt", file.Name, "Created file has wrong name"); } } } }