### Question:
AppFactory { public static void createApp(final String name, final String script, final String... iconPaths) throws Exception { final Path userApplicationFolder = ensureUserApplicationFolder(); createNativeApp(userApplicationFolder, name, script, iconPaths); }  static boolean exists(final String name); static void createApp(final String name, final String script, final String... iconPaths); final static boolean desktopLinkExists(final String appname); final static void createDesktopLink(final String appname, final String script, final String... iconPaths); final static String CONTENTS_FOLDER_NAME; final static String APP_EXTENSION; }### Answer:
@Test @EnabledOnOs(OS.MAC) public void testCreateApp() throws Exception { FileUtils.recursiveDelete(new File(userHome), new File("/tmp")); assertTrue(new File(userHome).exists() == false); final String appName = "MyFirstApp"; final String appNameWithSuffix = appName + AppFactory.APP_EXTENSION; AppFactory.createAppWithoutMenuEntry(appName, script, IcnsFactorySample.class.getResource("icon.png").getFile()); assertTrue(Files.exists(Paths.get(userHome))); assertTrue(Files.exists(Paths.get(userCache))); assertTrue(Files.exists(Paths.get(userCache, "applications"))); assertTrue(Files.exists(Paths.get(userCache, "applications", appNameWithSuffix))); AppFactory.createApp(appName, script, IcnsFactorySample.class.getResource("icon.png").getFile()); }