package co.codewizards.cloudstore.core.oio; import static org.junit.Assert.*; import java.io.File; import java.io.IOException; import org.junit.Test; import co.codewizards.cloudstore.core.oio.IoFileRelativePathUtil; /** * @author Sebastian Schefczyk */ public class IoFileRelativePathUtilTest { private final static String STEP_UP = "../"; @Test public void testInTargetDir() throws IOException { final File testDir = new File(new File("target"), "testDir"); testDir.mkdir(); final File subFolder = new File(testDir, "subFolder"); final File fileName = new File(subFolder, "fileName"); final String relPath = IoFileRelativePathUtil.getRelativePath(testDir, fileName); assertNotNull(relPath); assertTrue(fileName.getAbsolutePath().endsWith(relPath)); assertEquals("subFolder/fileName", relPath); } @Test public void testInTmp() throws IOException { final File testDir = new File(new File("/tmp/IOUtilTest"), "testDir"); testDir.mkdir(); final File subFolder = new File(testDir, "subFolder"); final File fileName = new File(subFolder, "fileName"); final String relPath = IoFileRelativePathUtil.getRelativePath(testDir, fileName); assertNotNull(relPath); assertTrue(fileName.getAbsolutePath().endsWith(relPath)); assertEquals("subFolder/fileName", relPath); } @Test public void stepIntoSubfolder() throws IOException { final String baseDir = "/tmp/folder/"; final String testFile1 = "/tmp/folder/subFolder1/fileName1"; final String relPath = IoFileRelativePathUtil.getRelativePath(baseDir, testFile1, true, File.separatorChar); assertNotNull(relPath); assertEquals("subFolder1/fileName1", relPath); } @Test public void stepUpOneFolder() throws IOException { final String baseDir = "/tmp/folder/subFolder"; final String testFile1 = "/tmp/folder/subFolder1/fileName1"; final String relPath = IoFileRelativePathUtil.getRelativePath(baseDir, testFile1, true, File.separatorChar); assertNotNull(relPath); assertEquals(STEP_UP + "subFolder1/fileName1", relPath); } @Test public void parallelToFileSubfolder() throws IOException { final String baseDir = "/tmp/folder/file"; final String testFile1 = "/tmp/folder/subFolder1/fileName"; final String relPath = IoFileRelativePathUtil.getRelativePath(baseDir, testFile1, false, File.separatorChar); assertNotNull(relPath); // assertEquals("subFolder1/fileName", relPath); assertEquals("../subFolder1/fileName", relPath); // like java.nio.Path.relativize } @Test public void parallelToFile_stepUp() throws IOException { final String baseDir = "/tmp/folder/subfolder/file"; final String testFile1 = "/tmp/folder/subFolder1/fileName1"; final String relPath = IoFileRelativePathUtil.getRelativePath(baseDir, testFile1, false, File.separatorChar); assertNotNull(relPath); // assertEquals("../subFolder1/fileName1", relPath); assertEquals("../../subFolder1/fileName1", relPath); // like java.nio.Path.relativize } }