package tap; import static org.junit.Assert.*; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.mapred.JobConf; import org.junit.Assert; import org.junit.Test; public class DFSStatTests { @Test public void testSingleFile() { DFSStat stat = new DFSStat("share/decameron.txt", new JobConf()); Assert.assertNotNull(stat.path); Assert.assertNotNull(stat.conf); Assert.assertNotNull(stat.dfsPath); Assert.assertNotNull(stat.fs); Assert.assertTrue(stat.isFile); Assert.assertTrue(stat.exists); Assert.assertTrue(0<stat.timestamp); Assert.assertNotNull(stat.getStatuses()); Assert.assertEquals(1,stat.getStatuses().length); Assert.assertFalse(stat.getStatuses()[0].isDir()); } @Test public void testDirectory() { DFSStat stat = new DFSStat("share/multi/01", new JobConf()); Assert.assertNotNull(stat.path); Assert.assertNotNull(stat.conf); Assert.assertNotNull(stat.dfsPath); Assert.assertNotNull(stat.fs); Assert.assertFalse(stat.isFile); Assert.assertTrue(stat.exists); Assert.assertTrue(0<stat.timestamp); Assert.assertNotNull(stat.getStatuses()); Assert.assertEquals(4,stat.getStatuses().length); // doesn't have sub-dirs for(FileStatus fs: stat.getStatuses()) { Assert.assertFalse(fs.isDir()); } } @Test public void testRecursiveDirectory() { DFSStat stat = new DFSStat("share/multi", new JobConf()); Assert.assertNotNull(stat.path); Assert.assertNotNull(stat.conf); Assert.assertNotNull(stat.dfsPath); Assert.assertNotNull(stat.fs); Assert.assertFalse(stat.isFile); Assert.assertTrue(stat.exists); Assert.assertTrue(0<stat.timestamp); Assert.assertNotNull(stat.getStatuses()); Assert.assertEquals(14,stat.getStatuses().length); // doesn't have sub-dirs boolean hasSubdirs = false; for(FileStatus fs: stat.getStatuses()) { if (fs.isDir()) hasSubdirs = true; } Assert.assertTrue(hasSubdirs); } @Test public void testMissing() { DFSStat stat = new DFSStat("share/missing.txt", new JobConf()); Assert.assertNotNull(stat.path); Assert.assertNotNull(stat.conf); Assert.assertNotNull(stat.dfsPath); Assert.assertNotNull(stat.fs); Assert.assertFalse(0<stat.timestamp); Assert.assertFalse(stat.exists); } }