public void MoveTo_TargetIsNewFile_CanMoveAndChangeName() { // arrange using (var driver = new DiskDriver()) { var src = driver.CreateOrGetFile(@"c:\src\file.txt"); driver.CreateOrGetDirectory(@"c:\targ"); using (var t = src.CreateText()) { t.Write("CONTENT"); } // act src.MoveTo(@"c:\targ\moved.txt"); src.Refresh(); // assert var target = driver.GetFile(@"c:\targ\moved.txt"); Assert.AreEqual(@"c:\targ\moved.txt", src.FullName); Assert.IsFalse(driver.GetFile(@"c:\src\file.txt").Exists); Assert.IsTrue(target.Exists); using (var t = target.OpenText()) { Assert.AreEqual("CONTENT", t.ReadToEnd()); } } }
public void Move_CanUpdateStubs() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_1\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_1\file_2.txt"); driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_2\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_2\file_2.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_1\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_1\file_2.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_2\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_2\file_2.txt"); driver.CreateOrGetDirectory(@"c:\targ"); var folder_1 = driver.GetDirectory(@"c:\src\folder_1"); // act folder_1.MoveTo(@"c:\targ\folder_1"); // assert var fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_1\file_1.txt"); Assert.AreEqual(@"c:\targ\folder_1\subfolder_1\file_1.txt", fileStub.FullName); fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_1\file_2.txt"); Assert.AreEqual(@"c:\targ\folder_1\subfolder_1\file_2.txt", fileStub.FullName); fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_2\file_1.txt"); Assert.AreEqual(@"c:\targ\folder_1\subfolder_2\file_1.txt", fileStub.FullName); fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_2\file_2.txt"); Assert.AreEqual(@"c:\targ\folder_1\subfolder_2\file_2.txt", fileStub.FullName); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_1\file_1.txt"); Assert.AreEqual(@"c:\src\folder_2\subfolder_1\file_1.txt", fileStub.FullName); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_1\file_2.txt"); Assert.AreEqual(@"c:\src\folder_2\subfolder_1\file_2.txt", fileStub.FullName); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_2\file_1.txt"); Assert.AreEqual(@"c:\src\folder_2\subfolder_2\file_1.txt", fileStub.FullName); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_2\file_2.txt"); Assert.AreEqual(@"c:\src\folder_2\subfolder_2\file_2.txt", fileStub.FullName); var dirStub = driver.GetDirectory(@"c:\targ"); Assert.AreEqual(@"c:\targ", dirStub.FullName); dirStub = driver.GetDirectory(@"c:\targ\folder_1"); Assert.AreEqual(@"c:\targ\folder_1", dirStub.FullName); dirStub = driver.GetDirectory(@"c:\targ\folder_1\subfolder_1"); Assert.AreEqual(@"c:\targ\folder_1\subfolder_1", dirStub.FullName); dirStub = driver.GetDirectory(@"c:\targ\folder_1\subfolder_2"); Assert.AreEqual(@"c:\targ\folder_1\subfolder_2", dirStub.FullName); dirStub = driver.GetDirectory(@"c:\src"); Assert.AreEqual(@"c:\src", dirStub.FullName); dirStub = driver.GetDirectory(@"c:\src\folder_2"); Assert.AreEqual(@"c:\src\folder_2", dirStub.FullName); dirStub = driver.GetDirectory(@"c:\src\folder_2\subfolder_1"); Assert.AreEqual(@"c:\src\folder_2\subfolder_1", dirStub.FullName); dirStub = driver.GetDirectory(@"c:\src\folder_2\subfolder_2"); Assert.AreEqual(@"c:\src\folder_2\subfolder_2", dirStub.FullName); } }
public void OpenFile_CreateMode_FileExists_CanOverwriteFile() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetDirectory(@"c:\temp"); var file = driver.GetFile(@"c:\temp\file.txt"); using (var writer = new StreamWriter(file.Open(FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))) { writer.Write("1"); } // act using (var writer = new StreamWriter(file.Open(FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite))) { writer.Write("2"); } // assert using (var reader = new StreamReader(file.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { Assert.AreEqual("2", reader.ReadToEnd()); } } }
public void Timestamps_DeleteFile_GrandparentDirectoryIsntUpdated() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetFile(@"c:\parent\folder\file.txt"); var parent = driver.GetDirectory(@"c:\parent"); var beforeDelete = DateTime.Now; var old = beforeDelete.AddMinutes(-5); parent.LastAccessTime = parent.LastWriteTime = parent.CreationTime = old; Assert.IsTrue(parent.LastAccessTime == old); Assert.IsTrue(parent.LastWriteTime == old); Assert.IsTrue(parent.CreationTime == old); // act var file = driver.GetFile(@"c:\parent\folder\file.txt"); file.Delete(); parent.Refresh(); // Assert Assert.IsTrue(parent.LastAccessTime == old); Assert.IsTrue(parent.LastWriteTime == old); Assert.IsTrue(parent.CreationTime == old); } }
public void Timestamps_CreateFileStream_GrandparentDirectoryIsntUpdated() { // arrange using (var driver = new DiskDriver()) { var beforeCreate = DateTime.Now; var f = driver.CreateOrGetDirectory(@"c:\parent\subfolder"); var parent = driver.GetDirectory(@"c:\parent"); var expected = beforeCreate.AddMinutes(-5); parent.LastAccessTime = parent.LastWriteTime = parent.CreationTime = expected; Assert.IsTrue(parent.LastAccessTime == expected); Assert.IsTrue(parent.LastWriteTime == expected); Assert.IsTrue(parent.CreationTime == expected); // act var file = driver.GetFile(@"c:\parent\subfolder\file.txt"); using (file.Create()) { } // Assert Assert.IsTrue(parent.LastAccessTime == expected); Assert.IsTrue(parent.LastWriteTime == expected); Assert.IsTrue(parent.CreationTime == expected); } }
public void TimeStamps_CreateFileStream_CanUpdateTimestamps() { // arrange using (var driver = new DiskDriver()) { var beforeCreate = DateTime.Now; var f = driver.CreateOrGetDirectory(@"c:\folder"); var old = beforeCreate.AddMinutes(-5); f.LastAccessTime = f.LastWriteTime = f.CreationTime = old; Assert.IsTrue(f.LastAccessTime == old); Assert.IsTrue(f.LastWriteTime == old); Assert.IsTrue(f.CreationTime == old); // act var file = driver.GetFile(@"c:\folder\file.txt"); using (file.Create()) { } f.Refresh(); // Assert Assert.IsTrue(f.LastAccessTime >= beforeCreate); Assert.IsTrue(f.LastWriteTime >= beforeCreate); Assert.IsTrue(f.CreationTime == old); } }
public void Delete_ForDirectory_Recurse_DirectoryNotEmpty_CanDelete() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetFile(@"c:\folder\subfolder\file.txt"); driver.CreateOrGetFile(@"c:\folder\file.txt"); driver.CreateOrGetFile(@"c:\other_folder\file.txt"); // act var folder = driver.GetDirectory(@"c:\folder"); folder.Delete(true); // assert folder.Refresh(); Assert.IsFalse(folder.Exists); Assert.IsFalse(driver.GetDirectory(@"c:\folder\subfolder").Exists); Assert.IsFalse(driver.GetFile(@"c:\folder\subfolder\file.txt").Exists); var c = driver.GetDirectory(@"c:\"); var filesAfterDelete = c.GetFiles("*", SearchOption.AllDirectories); Assert.AreEqual(1, filesAfterDelete.Length); Assert.AreEqual(@"c:\other_folder\file.txt", filesAfterDelete[0].FullName); var directoriesAfterDelete = c.GetDirectories("*", SearchOption.AllDirectories); Assert.AreEqual(1, directoriesAfterDelete.Length); Assert.AreEqual(@"c:\other_folder", directoriesAfterDelete[0].FullName); } }
public void SetIsReadOnly_DirDoesntExist_Throws() { // arrange using (var driver = new DiskDriver()) { var file = driver.GetFile(@"c:\temp\file.txt"); // act/assert Assert.ThrowsException <DirectoryNotFoundException>(() => file.IsReadOnly = true); } }
public void SetCreationTime_DirectoryDoesntExist_Throws() { // arrange using (var driver = new DiskDriver()) { var file = driver.GetFile(@"c:\temp\file.txt"); // act/assert Assert.ThrowsException <DirectoryNotFoundException>(() => file.CreationTime = DateTime.Now); } }
public void MoveTo_SourceDirectoryDoesntExist_Throws() { // arrange using (var driver = new DiskDriver()) { var src = driver.GetFile(@"c:\src\file.txt"); // act/assert Assert.ThrowsException <DirectoryNotFoundException>(() => src.MoveTo(@"c:\targ")); } }
public void GetIsReadOnly_FileDoesntExist_ReturnsTrue() { // arrange using (var driver = new DiskDriver()) { var file = driver.GetFile(@"c:\temp\file.txt"); // act/assert Assert.IsTrue(file.IsReadOnly); } }
public void GetLength_DirectoryDoesntExist_Throws() { // arrange using (var driver = new DiskDriver()) { var file = driver.GetFile(@"c:\temp\file.txt"); // act/assert Assert.ThrowsException <DirectoryNotFoundException>(() => file.Length); } }
public void SetAttributes_DirectoryDoesntExist_Throws() { // arrange using (var driver = new DiskDriver()) { var file = driver.GetFile(@"c:\temp\file.txt"); // act/assert Assert.ThrowsException <DirectoryNotFoundException>(() => file.Attributes = FileAttributes.Hidden); } }
public void CopyTo_SourceFileDoesntExist_Throws() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetDirectory(@"c:\src"); var src = driver.GetFile(@"c:\src\file.txt"); // act/assert Assert.ThrowsException <FileNotFoundException>(() => src.CopyTo(@"c:\targ\file.txt", true)); } }
public void OpenFile_DirectoryWithTheSameNameAlreadyExists_Throws(FileMode mode) { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetDirectory(@"c:\file"); var f = driver.GetFile(@"c:\file"); // act/assert Assert.ThrowsException <UnauthorizedAccessException>(() => f.Open(mode)); } }
public void SetLastWriteTime_FileDoesntExist_Throws() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetDirectory(@"c:\temp"); var file = driver.GetFile(@"c:\temp\file.txt"); // act/assert Assert.ThrowsException <FileNotFoundException>(() => file.LastWriteTime = DateTime.Now); } }
public void GetCustomData_CanStoreCustomData() { // arrange using (var driver = new DiskDriver()) { var file = driver.CreateOrGetFile(@"c:\file.txt"); file.CustomData.Add("my-data-key", "my-data-value"); // assert file = driver.GetFile(@"c:\file.txt"); Assert.AreEqual("my-data-value", file.CustomData["my-data-key"]); } }
public void OpenFile_TruncateMode_FileDeosntExist_Throws() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetDirectory(@"c:\temp"); var file = driver.GetFile(@"c:\temp\file.txt"); // act Assert.ThrowsException <FileNotFoundException>(() => { file.Open(FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite); }); } }
public void SetAttributes_FileExists_CanSetAttributes() { // arrange using (var driver = new DiskDriver()) { var file = driver.CreateOrGetFile(@"c:\temp\file.txt"); // act file = driver.GetFile(@"c:\temp\file.txt"); file.Attributes = FileAttributes.Hidden; // assert Assert.AreEqual(FileAttributes.Hidden, file.Attributes); } }
public void Delete_ForFile_FileDoesntExist_DoesNothing() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetDirectory(@"c:\temp"); var file = driver.GetFile(@"c:\temp\file.txt"); // act file.Delete(); // assert file.Refresh(); Assert.IsFalse(file.Exists); } }
public void SetIsReadOnly_FileExist_CanSet() { // arrange using (var driver = new DiskDriver()) { var file1 = driver.CreateOrGetFile(@"c:\temp\file.txt"); file1.IsReadOnly = false; var file2 = driver.GetFile(@"c:\temp\file.txt"); Assert.IsFalse(file2.IsReadOnly); file1.IsReadOnly = true; file2.Refresh(); Assert.IsTrue(file2.IsReadOnly); } }
public void GetLength_FileExist_CanReturnLength() { // arrange using (var driver = new DiskDriver()) using (var ms = new MemoryStream(new byte[] { 1, 2, 3, 4 })) { driver.CreateOrGetDirectory(@"c:\temp"); var file = driver.GetFile(@"c:\temp\file.txt"); using (var fs = file.OpenWrite()) { ms.CopyTo(fs); } file.Refresh(); // assert Assert.AreEqual(ms.Length, file.Length); } }
public void CopyTo_TargetIsNewFile_CanCopy() { // arrange using (var driver = new DiskDriver()) { var src = driver.CreateOrGetFile(@"c:\src\file.txt"); driver.CreateOrGetDirectory(@"c:\targ"); driver.GetFile(@"c:\targ\new_file.txt"); using (var t = src.CreateText()) { t.Write("CONTENT"); } // act var result = src.CopyTo(@"c:\targ\new_file.txt", false); // assert using (var t = result.OpenText()) { Assert.AreEqual("CONTENT", t.ReadToEnd()); } } }
public void MoveTo_CanKeepTimes() { // arrange using (var driver = new DiskDriver()) { var src = driver.CreateOrGetFile(@"c:\src\file.txt"); driver.CreateOrGetDirectory(@"c:\targ"); var time = DateTime.Now.AddMinutes(-5); src.LastAccessTime = src.LastWriteTime = src.CreationTime = time; // act src.MoveTo(@"c:\targ\file.txt"); // assert var result = driver.GetFile(@"c:\targ\file.txt"); Assert.AreEqual(time, result.LastWriteTime); Assert.AreEqual(time, result.LastAccessTime); Assert.AreEqual(time, result.CreationTime); } }
public void Move_CanUpdateControlBlockCollections() { // arrange using (var driver = new DiskDriver()) { driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_1\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_1\file_2.txt"); driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_2\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_1\subfolder_2\file_2.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_1\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_1\file_2.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_2\file_1.txt"); driver.CreateOrGetFile(@"c:\src\folder_2\subfolder_2\file_2.txt"); driver.CreateOrGetDirectory(@"c:\targ"); var folder_1 = driver.GetDirectory(@"c:\src\folder_1"); // act folder_1.MoveTo(@"c:\targ\folder_1"); // assert var fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_1\file_1.txt"); Assert.IsTrue(fileStub.Exists); fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_1\file_2.txt"); Assert.IsTrue(fileStub.Exists); fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_2\file_1.txt"); Assert.IsTrue(fileStub.Exists); fileStub = driver.GetFile(@"c:\targ\folder_1\subfolder_2\file_2.txt"); Assert.IsTrue(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_1\subfolder_1\file_1.txt"); Assert.IsFalse(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_1\subfolder_1\file_2.txt"); Assert.IsFalse(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_1\subfolder_2\file_1.txt"); Assert.IsFalse(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_1\subfolder_2\file_2.txt"); Assert.IsFalse(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_1\file_1.txt"); Assert.IsTrue(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_1\file_2.txt"); Assert.IsTrue(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_2\file_1.txt"); Assert.IsTrue(fileStub.Exists); fileStub = driver.GetFile(@"c:\src\folder_2\subfolder_2\file_2.txt"); Assert.IsTrue(fileStub.Exists); var dirStub = driver.GetDirectory(@"c:\targ"); Assert.IsTrue(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\targ\folder_1"); Assert.IsTrue(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\targ\folder_1\subfolder_1"); Assert.IsTrue(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\targ\folder_1\subfolder_2"); Assert.IsTrue(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\src\folder_1"); Assert.IsFalse(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\src\folder_1\subfolder_1"); Assert.IsFalse(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\src\folder_1\subfolder_2"); Assert.IsFalse(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\src"); Assert.IsTrue(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\src\folder_2"); Assert.IsTrue(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\src\folder_2\subfolder_1"); Assert.IsTrue(dirStub.Exists); dirStub = driver.GetDirectory(@"c:\src\folder_2\subfolder_2"); Assert.IsTrue(dirStub.Exists); } }