github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/clients/hadoopfs/src/test/java/io/lakefs/contract/TestLakeFSContractRename.java (about) 1 package io.lakefs.contract; 2 3 import org.apache.hadoop.conf.Configuration; 4 import org.apache.hadoop.fs.FileSystem; 5 import org.apache.hadoop.fs.Path; 6 import org.apache.hadoop.fs.contract.AbstractContractRenameTest; 7 import org.apache.hadoop.fs.contract.AbstractFSContract; 8 9 import static org.apache.hadoop.fs.contract.ContractTestUtils.dataset; 10 import static org.apache.hadoop.fs.contract.ContractTestUtils.writeDataset; 11 12 public class TestLakeFSContractRename extends AbstractContractRenameTest { 13 14 @Override 15 protected AbstractFSContract createContract(Configuration conf) { 16 return new LakeFSContract(conf); 17 } 18 19 @Override 20 public void testRenameDirIntoExistingDir() throws Throwable { 21 describe("Verify renaming a dir into an existing dir puts the files" 22 +" from the source dir into the existing dir" 23 +" and leaves existing files alone"); 24 FileSystem fs = getFileSystem(); 25 String sourceSubdir = "source"; 26 Path srcDir = path(sourceSubdir); 27 Path srcFilePath = new Path(srcDir, "source-256.txt"); 28 byte[] srcDataset = dataset(256, 'a', 'z'); 29 writeDataset(fs, srcFilePath, srcDataset, srcDataset.length, 1024, false); 30 Path destDir = path("dest"); 31 32 Path destFilePath = new Path(destDir, "dest-512.txt"); 33 byte[] destDateset = dataset(512, 'A', 'Z'); 34 writeDataset(fs, destFilePath, destDateset, destDateset.length, 1024, 35 false); 36 assertIsFile(destFilePath); 37 38 boolean rename = fs.rename(srcDir, destDir); 39 assertFalse("s3a doesn't support rename to non-empty directory", rename); 40 } 41 }