@Override public String readSymbolicLink() throws IOException { logger.trace("[{}] readSymbolicLink()", name); return bean.getLinkTarget(); }
protected LsOutputBean findFinalLinkTarget(LsOutputBean bean, final LsOutputParser parser ) { LsOutputBean tmp = bean; final LsOutputBean[] wrapper = new LsOutputBean[1]; int i=0; while (tmp.isLink()) { shell.addCommand("ls -lad \"" + tmp.getLinkTarget() + "\"", 0, new Shell.OnCommandLineListener() { @Override public void onLine(String s) { wrapper[0] = parser.parseLine(s); } @Override public void onCommandResult(int i, int i1) { } }); shell.waitForIdle(); tmp = wrapper[0]; i++; if (i > 20) { break; } } return tmp; }
@Test public void nameWithSpaces() throws IOException { List<LsOutputBean> beans = new LsOutputParser().parse(stream("name-with-spaces.txt")); Assert.assertEquals(4, beans.size()); Assert.assertEquals("dir name", beans.get(0).getName()); Assert.assertEquals("file name", beans.get(1).getName()); Assert.assertEquals("file 2", beans.get(2).getName()); Assert.assertEquals("link name", beans.get(3).getName()); Assert.assertEquals("/absolute/link target", beans.get(3).getLinkTarget()); }
@Test public void symLink() throws IOException { List<LsOutputBean> beans = new LsOutputParser().parse(stream("sym-link.txt")); Assert.assertEquals(1, beans.size()); LsOutputBean link = beans.get(0); Assert.assertFalse(link.isDir()); Assert.assertFalse(link.isFile()); Assert.assertTrue(link.isLink()); Assert.assertEquals("link_name", link.getName()); Assert.assertEquals("/absolute/link/target", link.getLinkTarget()); Assert.assertNotNull(link.getDate()); Assert.assertTrue(link.getDate().getTime() > 0); }
Assert.assertEquals(1234, dir.getSize()); Assert.assertEquals("dir_name", dir.getName()); Assert.assertNull(dir.getLinkTarget()); Assert.assertNotNull(dir.getDate()); Assert.assertEquals(88200000, dir.getDate().getTime());
Assert.assertEquals(1234, dir.getSize()); Assert.assertEquals("dir_name", dir.getName()); Assert.assertNull(dir.getLinkTarget()); Assert.assertNotNull(dir.getDate()); Assert.assertEquals(88200000, dir.getDate().getTime());