public virtual void TestRenameFileNonexistentDir() { Describe("rename a file into a new file in the same directory"); Path renameSrc = Path("testRenameSrc"); Path renameTarget = Path("subdir/testRenameTarget"); byte[] data = ContractTestUtils.Dataset(256, 'a', 'z'); ContractTestUtils.WriteDataset(GetFileSystem(), renameSrc, data, data.Length, 1024 * 1024, false); bool renameCreatesDestDirs = IsSupported(RenameCreatesDestDirs); try { bool rename = Rename(renameSrc, renameTarget); if (renameCreatesDestDirs) { Assert.True(rename); ContractTestUtils.VerifyFileContents(GetFileSystem(), renameTarget, data); } else { NUnit.Framework.Assert.IsFalse(rename); ContractTestUtils.VerifyFileContents(GetFileSystem(), renameSrc, data); } } catch (FileNotFoundException) { // allowed unless that rename flag is set NUnit.Framework.Assert.IsFalse(renameCreatesDestDirs); } }
public virtual void TestRenameDirIntoExistingDir() { Describe("Verify renaming a dir into an existing dir puts it underneath" + " and leaves existing files alone" ); FileSystem fs = GetFileSystem(); string sourceSubdir = "source"; Path srcDir = Path(sourceSubdir); Path srcFilePath = new Path(srcDir, "source-256.txt"); byte[] srcDataset = ContractTestUtils.Dataset(256, 'a', 'z'); ContractTestUtils.WriteDataset(fs, srcFilePath, srcDataset, srcDataset.Length, 1024 , false); Path destDir = Path("dest"); Path destFilePath = new Path(destDir, "dest-512.txt"); byte[] destDateset = ContractTestUtils.Dataset(512, 'A', 'Z'); ContractTestUtils.WriteDataset(fs, destFilePath, destDateset, destDateset.Length, 1024, false); AssertIsFile(destFilePath); bool rename = Rename(srcDir, destDir); Path renamedSrc = new Path(destDir, sourceSubdir); AssertIsFile(destFilePath); AssertIsDirectory(renamedSrc); ContractTestUtils.VerifyFileContents(fs, destFilePath, destDateset); Assert.True("rename returned false though the contents were copied" , rename); }
public virtual void TestCreateNewFile() { Describe("Foundational 'create a file' test"); Path path = Path("testCreateNewFile"); byte[] data = ContractTestUtils.Dataset(256, 'a', 'z'); ContractTestUtils.WriteDataset(GetFileSystem(), path, data, data.Length, 1024 * 1024 , false); ContractTestUtils.VerifyFileContents(GetFileSystem(), path, data); }
public virtual void TestOverwriteExistingFile() { Describe("Overwrite an existing file and verify the new data is there"); Path path = Path("testOverwriteExistingFile"); byte[] data = ContractTestUtils.Dataset(256, 'a', 'z'); ContractTestUtils.WriteDataset(GetFileSystem(), path, data, data.Length, 1024, false ); ContractTestUtils.VerifyFileContents(GetFileSystem(), path, data); byte[] data2 = ContractTestUtils.Dataset(10 * 1024, 'A', 'Z'); ContractTestUtils.WriteDataset(GetFileSystem(), path, data2, data2.Length, 1024, true); ContractTestUtils.VerifyFileContents(GetFileSystem(), path, data2); }
public virtual void TestRenameFileOverExistingFile() { Describe("Verify renaming a file onto an existing file matches expectations"); Path srcFile = Path("source-256.txt"); byte[] srcData = ContractTestUtils.Dataset(256, 'a', 'z'); ContractTestUtils.WriteDataset(GetFileSystem(), srcFile, srcData, srcData.Length, 1024, false); Path destFile = Path("dest-512.txt"); byte[] destData = ContractTestUtils.Dataset(512, 'A', 'Z'); ContractTestUtils.WriteDataset(GetFileSystem(), destFile, destData, destData.Length , 1024, false); AssertIsFile(destFile); bool renameOverwritesDest = IsSupported(RenameOverwritesDest); bool renameReturnsFalseOnRenameDestExists = !IsSupported(RenameReturnsFalseIfDestExists ); bool destUnchanged = true; try { bool renamed = Rename(srcFile, destFile); if (renameOverwritesDest) { // the filesystem supports rename(file, file2) by overwriting file2 Assert.True("Rename returned false", renamed); destUnchanged = false; } else { // rename is rejected by returning 'false' or throwing an exception if (renamed && !renameReturnsFalseOnRenameDestExists) { //expected an exception string destDirLS = GenerateAndLogErrorListing(srcFile, destFile); GetLog().Error("dest dir {}", destDirLS); NUnit.Framework.Assert.Fail("expected rename(" + srcFile + ", " + destFile + " ) to fail," + " but got success and destination of " + destDirLS); } } } catch (FileAlreadyExistsException e) { HandleExpectedException(e); } // verify that the destination file is as expected based on the expected // outcome ContractTestUtils.VerifyFileContents(GetFileSystem(), destFile, destUnchanged ? destData : srcData); }
public virtual void TestRenameNewFileSameDir() { Describe("rename a file into a new file in the same directory"); Path renameSrc = Path("rename_src"); Path renameTarget = Path("rename_dest"); byte[] data = ContractTestUtils.Dataset(256, 'a', 'z'); ContractTestUtils.WriteDataset(GetFileSystem(), renameSrc, data, data.Length, 1024 * 1024, false); bool rename = Rename(renameSrc, renameTarget); Assert.True("rename(" + renameSrc + ", " + renameTarget + ") returned false" , rename); ContractTestUtils.AssertListStatusFinds(GetFileSystem(), renameTarget.GetParent() , renameTarget); ContractTestUtils.VerifyFileContents(GetFileSystem(), renameTarget, data); }