r1883 - in trunk/src: main/java/org/nuiton/util test/java/org/nuiton/util
Author: fdesbois Date: 2010-06-17 15:31:02 +0200 (Thu, 17 Jun 2010) New Revision: 1883 Url: http://nuiton.org/repositories/revision/nuiton-utils/1883 Log: Ano #687 : Add test Modified: trunk/src/main/java/org/nuiton/util/ApplicationConfig.java trunk/src/test/java/org/nuiton/util/ApplicationConfigTest.java Modified: trunk/src/main/java/org/nuiton/util/ApplicationConfig.java =================================================================== --- trunk/src/main/java/org/nuiton/util/ApplicationConfig.java 2010-06-17 11:24:03 UTC (rev 1882) +++ trunk/src/main/java/org/nuiton/util/ApplicationConfig.java 2010-06-17 13:31:02 UTC (rev 1883) @@ -603,15 +603,16 @@ prop.remove(excludeKey); } - // Ano #687 : check existence of parentFile before using it in FileWriter - // TODO-fdesbois-2010-06-17 : Need to be tested - FileUtil.createDirectoryIfNecessary(file.getParentFile()); + // Ano #687 : create parentFile before using it in FileWriter + boolean dirCreated = FileUtil.createDirectoryIfNecessary(file.getParentFile()); + if (dirCreated && log.isDebugEnabled()) { + log.debug("Creation of config directory " + file.getParent()); + } Writer writer = new FileWriter(file); try { prop.store(writer, "Last saved " + new java.util.Date()); - } - finally { + } finally { writer.close(); } } @@ -918,7 +919,7 @@ String userHome = null; try { - userHome = System.getProperty("user.home"); + userHome = getUserHome(); } catch (SecurityException ignore) { } Modified: trunk/src/test/java/org/nuiton/util/ApplicationConfigTest.java =================================================================== --- trunk/src/test/java/org/nuiton/util/ApplicationConfigTest.java 2010-06-17 11:24:03 UTC (rev 1882) +++ trunk/src/test/java/org/nuiton/util/ApplicationConfigTest.java 2010-06-17 13:31:02 UTC (rev 1883) @@ -26,6 +26,7 @@ package org.nuiton.util; import java.io.File; +import java.io.IOException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; @@ -33,7 +34,10 @@ import java.util.ListIterator; import java.util.Map; +import org.apache.commons.logging.LogFactory; +import org.apache.commons.logging.Log; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import org.nuiton.util.ApplicationConfig.Action; @@ -42,6 +46,24 @@ * @author poussin */ public class ApplicationConfigTest { + + private static final Log log = LogFactory.getLog(ApplicationConfigTest.class); + + // says testsData is where we start tests. + protected File testsDataDir; + + protected static final String SYSTEM_PROPERTY_USER_HOME = "user.home"; + + @Before + public void setUp() throws IOException { + String basedirPath = System.getenv("basedir"); + if (basedirPath == null) { + basedirPath = new File("").getAbsolutePath(); + } + testsDataDir = new File(basedirPath, + "target" + File.separator + "surefire-data"); + FileUtil.createDirectoryIfNecessary(testsDataDir); + } static int dummyActionCall = 0; static public class DummyAction { @@ -52,6 +74,37 @@ } } + @Test + public void testSaveForUser() { + log.info("testSaveForUser"); + + /** PREPARE DATA **/ + + // Initiliaze path and filename + String path = new File(testsDataDir, "user").getAbsolutePath(); + String filename = "test-saveForUser.properties"; + + // Set path to USER_HOME (keep old value) + String oldHome = System.getProperty(SYSTEM_PROPERTY_USER_HOME); + System.setProperty(SYSTEM_PROPERTY_USER_HOME, path); + + /** EXEC METHOD **/ + + ApplicationConfig config = new ApplicationConfig(); + config.setOption(ApplicationConfig.CONFIG_FILE_NAME, filename); + Assert.assertFalse(config.getUserConfigFile().exists()); + + log.info("execute saveForUser : path = " + path + " _ filename = " + filename); + config.saveForUser(); + Assert.assertTrue(config.getUserConfigFile().exists()); + + /** CLEAN **/ + + // Reset initial values + System.setProperty(SYSTEM_PROPERTY_USER_HOME, oldHome); + config.getUserConfigFile().delete(); + } + /** * Test of getUnparsed method, of class ApplicationConfig. */
participants (1)
-
fdesbois@users.nuiton.org