### Question:
FileManager { public void synchronize(File source, File target) throws ApplicationException { if (source != null && target != null) { String[] sourceFileNames = source.list(); if (sourceFileNames != null) { for (String sourceFileName : sourceFileNames) { File sourceFile = new File(source, sourceFileName); copyRecursively(sourceFile, target, null, false); } } } } FileManager();  FileManager(Application app); void synchronize(File source, File target); void rename(File fileToRename, File target); void move(File object, File newParent); void move(File object, File newParent, FileFilter filter); void delete(File object); void delete(File object, FileFilter filter); void deleteChildren(File parentDir); void deleteRecursively(File file); void deleteRecursively(File file, FileFilter filter,
                                DeletionPolicy deletePolicy); File copy(File objectFile, File destDir); File copy(File objectFile, File destDir, boolean overwrite); void copyRecursively(File objectFile, File destDir); void copyRecursively(File objectFile, File destDir, FileFilter filter); void copyRecursively(File objectFile, File destDir,
                              FileFilter filter, boolean overwrite); boolean filesDiffer(File f1, File f2);  }### Answer:
@Test(enabled = false) public void testSynchronize() throws Exception { File s = new File(fmWorkspace, "s"); File t = new File(fmWorkspace, "t"); String childOfS = "child of s"; String childOfT = "child of t"; createSourceFiles(s, childOfS); createSourceFiles(t, childOfT); File t_d1 = new File(t, "d1"); File t_f1a = new File(t_d1, "f1a"); File t_f1b = new File(t_d1, "f1b"); File t_d2 = new File(t, "d2"); File t_f2a = new File(t_d2, "f2a"); File t_d2b = new File(t_d2, "d2b"); File t_f2b1 = new File(t_d2b, "f2b1"); assertTrue(t_d1.exists()); assertTrue(t_f1a.exists()); assertTrue(t_f1b.exists()); assertTrue(t_d2.exists()); assertTrue(t_f2a.exists()); assertTrue(t_d2b.exists()); assertTrue(t_f2b1.exists()); assertTrue(t_f2b1.delete()); assertTrue(t_d2b.delete()); assertTrue(t_f1a.delete()); fileManager.synchronize(s, t); assertTrue(t_f2b1.exists()); assertEquals(childOfS, contentsOf(t_f2b1)); assertTrue(t_d2b.exists()); assertTrue(t_f1a.exists()); assertEquals(childOfS, contentsOf(t_f1a)); assertEquals(childOfT, contentsOf(t_f1b)); assertEquals(childOfT, contentsOf(t_f2a)); }