package io.airlift.airship.shared; import org.testng.annotations.Test; import java.io.File; import static io.airlift.airship.shared.FileUtils.createSymbolicLink; import static io.airlift.airship.shared.FileUtils.createTempDir; import static io.airlift.airship.shared.FileUtils.isSymbolicLink; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; public class TestDeploymentUtils { @Test public void testIsSymbolicLink() throws Exception { File baseDir = null; File realDir = null; File realFile = null; File symFile = null; File symDir = null; File nestDir = null; File nestedSymDir = null; try { baseDir = createTempDir("link-test"); realDir = new File(baseDir, "foo"); realDir.mkdirs(); assertFalse(isSymbolicLink(realDir)); realFile = new File(realDir, "realFile"); realFile.createNewFile(); assertFalse(isSymbolicLink(realFile)); symFile = new File(realDir, "symFile"); createSymbolicLink(realFile, symFile); assertTrue(isSymbolicLink(symFile)); symDir = new File(baseDir, "bar"); createSymbolicLink(realDir, symDir); assertTrue(isSymbolicLink(symDir)); assertTrue(isSymbolicLink(new File(symDir, "symFile"))); assertFalse(isSymbolicLink(new File(symDir, "realFile"))); nestDir = new File(realDir, "nestDir"); nestedSymDir = new File(nestDir, realDir.getName()); createSymbolicLink(realDir, nestedSymDir); assertTrue(isSymbolicLink(nestedSymDir)); assertTrue(isSymbolicLink(new File(nestedSymDir, "symFile"))); assertFalse(isSymbolicLink(new File(nestedSymDir, "realFile"))); } finally { delete(nestedSymDir); delete(nestDir); delete(symDir); delete(symFile); delete(realFile); delete(realDir); delete(baseDir); } } private void delete(File file) { if (file != null) { file.delete(); } } }