Author: bpoussin Date: 2012-05-05 16:06:38 +0200 (Sat, 05 May 2012) New Revision: 2349 Url: http://nuiton.org/repositories/revision/nuiton-utils/2349 Log: ajout d'un test unitaire pour getSubConfig et petite correction Modified: trunk/nuiton-utils/src/main/java/org/nuiton/util/ApplicationConfig.java trunk/nuiton-utils/src/test/java/org/nuiton/util/ApplicationConfigTest.java Modified: trunk/nuiton-utils/src/main/java/org/nuiton/util/ApplicationConfig.java =================================================================== --- trunk/nuiton-utils/src/main/java/org/nuiton/util/ApplicationConfig.java 2012-05-05 01:32:04 UTC (rev 2348) +++ trunk/nuiton-utils/src/main/java/org/nuiton/util/ApplicationConfig.java 2012-05-05 14:06:38 UTC (rev 2349) @@ -470,6 +470,18 @@ * @since 2.4.8 */ public ApplicationConfig(Properties defaults, String configFilename) { + init(defaults, configFilename); + } + + /** + * On separt l'init du corps du constructeur, car les sous classes ne doivent + * pas l'executer. + * + * @param defaults + * @param configFilename + * @since 2.4.9 + */ + protected void init(Properties defaults, String configFilename) { if (defaults != null) { // iterate with Properties method and not with Hashtable method to // prevent missed value with chained Properties object @@ -2202,6 +2214,11 @@ this.prefix = prefix; } + @Override + protected void init(Properties defaults, String configFilename) { + // do nothing + } + public ApplicationConfig getParent() { return parent; } Modified: trunk/nuiton-utils/src/test/java/org/nuiton/util/ApplicationConfigTest.java =================================================================== --- trunk/nuiton-utils/src/test/java/org/nuiton/util/ApplicationConfigTest.java 2012-05-05 01:32:04 UTC (rev 2348) +++ trunk/nuiton-utils/src/test/java/org/nuiton/util/ApplicationConfigTest.java 2012-05-05 14:06:38 UTC (rev 2349) @@ -237,6 +237,28 @@ Assert.assertEquals("bidulle", instance.getOption("truc")); } + @Test + public void testSubConfig() { + ApplicationConfig instance = new ApplicationConfig(); + Assert.assertEquals(null, instance.getOption("truc")); + instance.setOption("truc", "bidulle"); + instance.setOption("machin", "chouette"); + instance.setOption("toto.truc", "AutreBidulle"); + instance.setOption("toto.specific", "theOne"); + Assert.assertEquals("bidulle", instance.getOption("truc")); + + ApplicationConfig sub = instance.getSubConfig("toto."); + // test la surcharge du default + Assert.assertEquals("AutreBidulle", sub.getOption("truc")); + // test l'utilisation du default + Assert.assertEquals("chouette", sub.getOption("machin")); + // test une valeur specifique au sub + Assert.assertEquals("theOne", sub.getOption("specific")); + + // TODO ajouter d'autres tests, pour les autres methodes surchargee + // TODO ajouter d'autres tests pour des sub-(sub-(sub)) config + } + /** * Test convertion to list */