]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Inhtroduce basedon context
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 1 Feb 2008 09:50:55 +0000 (09:50 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 1 Feb 2008 09:50:55 +0000 (09:50 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@940 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.core/src/main/java/org/argeo/slc/ant/AntRegistryUtil.java
org.argeo.slc.core/src/main/java/org/argeo/slc/ant/spring/MapArg.java
org.argeo.slc.core/src/main/java/org/argeo/slc/ant/test/ParentContextType.java
org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/context/ContextUtils.java
org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/UnitTestTreeUtil.java

index e15fedb15fb78965b252c8553cead8b9f7afaafd..634795e437e83297cec642eb56da9ab9d638389c 100644 (file)
@@ -57,8 +57,8 @@ public class AntRegistryUtil {
                return p;\r
        }\r
 \r
-       /** Executes all paths of the default target of the Ant file. */\r
-       public static Project runAll(File antFile) {\r
+       /** Executes all paths of the provided target of the Ant file. */\r
+       public static Project runAll(File antFile, String target) {\r
                if (log.isDebugEnabled())\r
                        log.debug("Runs all paths of Ant file " + antFile);\r
                Project p = new Project();\r
@@ -68,7 +68,12 @@ public class AntRegistryUtil {
                ProjectHelper helper = new SlcProjectHelper();\r
                p.addReference(ProjectHelper.PROJECTHELPER_REFERENCE, helper);\r
                helper.parse(p, antFile);\r
-               p.executeTarget(p.getDefaultTarget());\r
+               p.executeTarget(target != null ? target : p.getDefaultTarget());\r
                return p;\r
        }\r
+\r
+       /** Executes all paths of the default target of the Ant file. */\r
+       public static Project runAll(File antFile) {\r
+               return runAll(antFile, null);\r
+       }\r
 }\r
index 3bab27f952fb71069279c919021cbcb95090a520..eb45276448b7ce9b49a897e592b1245deb3b2a23 100644 (file)
@@ -5,6 +5,8 @@ import java.util.Map;
 import java.util.TreeMap;\r
 import java.util.Vector;\r
 \r
+import org.apache.tools.ant.BuildException;\r
+\r
 import org.argeo.slc.core.SlcException;\r
 \r
 public class MapArg {\r
@@ -24,7 +26,7 @@ public class MapArg {
                                if (map.containsKey(key)) {\r
                                        throw new SlcException("Key '" + key + "' already set.");\r
                                } else {\r
-                                       map.put(key, arg.getValue());\r
+                                       map.put(key, arg.getValueStr());\r
                                }\r
                        }\r
                }\r
@@ -33,7 +35,8 @@ public class MapArg {
 \r
        public static class EntryArg {\r
                private String key;\r
-               private Object value;\r
+               private Object valueStr;\r
+               private OverrideArg overrideArg;\r
 \r
                public String getKey() {\r
                        return key;\r
@@ -43,13 +46,31 @@ public class MapArg {
                        this.key = key;\r
                }\r
 \r
-               public Object getValue() {\r
-                       return value;\r
+               public Object getValueStr() {\r
+                       if (overrideArg != null) {\r
+                               return overrideArg.getObject();\r
+                       } else if (valueStr != null) {\r
+                               return valueStr;\r
+                       } else {\r
+                               throw new BuildException("Value not set.");\r
+                       }\r
                }\r
 \r
                public void setValue(String value) {\r
-                       this.value = value;\r
+                       check();\r
+                       this.valueStr = value;\r
+               }\r
+\r
+               public OverrideArg createOverride() {\r
+                       check();\r
+                       overrideArg = new OverrideArg();\r
+                       return overrideArg;\r
                }\r
 \r
+               private void check() {\r
+                       if (valueStr != null || overrideArg != null) {\r
+                               throw new BuildException("Value already set");\r
+                       }\r
+               }\r
        }\r
 }\r
index b6b541d784d3b0dda6e67ab42f681b7878ae0fd8..7915b1a42684a859160674e0a2a4d9ef5d0307b0 100644 (file)
@@ -10,12 +10,18 @@ import org.apache.tools.ant.types.DataType;
 import org.argeo.slc.ant.spring.MapArg;\r
 import org.argeo.slc.core.SlcException;\r
 import org.argeo.slc.core.test.context.ContextAware;\r
+import org.argeo.slc.core.test.context.ContextUtils;\r
 import org.argeo.slc.core.test.context.ParentContextAware;\r
 \r
 public class ParentContextType extends DataType implements ParentContextAware {\r
        private MapArg values = null;\r
        private MapArg expectedValues = null;\r
 \r
+       private String contextAnyFlag = DEFAULT_ANY_FLAG;\r
+       private String contextSkipFlag = DEFAULT_SKIP_FLAG;\r
+\r
+       private String basedon = null;\r
+\r
        private List<ContextAware> children = new Vector<ContextAware>();\r
 \r
        public MapArg createValues() {\r
@@ -37,25 +43,45 @@ public class ParentContextType extends DataType implements ParentContextAware {
        }\r
 \r
        public String getContextAnyFlag() {\r
-               return DEFAULT_ANY_FLAG;\r
+               return contextAnyFlag;\r
+       }\r
+\r
+       public void setContextAnyFlag(String contextAnyFlag) {\r
+               this.contextAnyFlag = contextAnyFlag;\r
        }\r
 \r
        public String getContextSkipFlag() {\r
-               return DEFAULT_SKIP_FLAG;\r
+               return contextSkipFlag;\r
+       }\r
+\r
+       public void setContextSkipFlag(String contextSkipFlag) {\r
+               this.contextSkipFlag = contextSkipFlag;\r
        }\r
 \r
        public Map<String, Object> getExpectedValues() {\r
                if (expectedValues == null)\r
                        expectedValues = new MapArg();\r
+               if (basedon != null) {\r
+                       Map<String, Object> map = getBaseContext().getExpectedValues();\r
+                       ContextUtils.putNotContained(expectedValues.getMap(), map);\r
+               }\r
                return expectedValues.getMap();\r
        }\r
 \r
        public Map<String, Object> getValues() {\r
                if (values == null)\r
                        values = new MapArg();\r
+               if (basedon != null) {\r
+                       Map<String, Object> map = getBaseContext().getValues();\r
+                       ContextUtils.putNotContained(values.getMap(), map);\r
+               }\r
                return values.getMap();\r
        }\r
 \r
+       private ParentContextType getBaseContext() {\r
+               return (ParentContextType) getProject().getReference(basedon);\r
+       }\r
+\r
        public void setValues(Map<String, Object> values) {\r
                throw new SlcException("Cannot override values map.");\r
        }\r
@@ -68,4 +94,9 @@ public class ParentContextType extends DataType implements ParentContextAware {
                        Map<String, Object> overrideExpectedValues) {\r
                getExpectedValues().putAll(overrideExpectedValues);\r
        }\r
+\r
+       public void setBasedon(String basedon) {\r
+               this.basedon = basedon;\r
+       }\r
+\r
 }\r
index ccf34fdcd937064dcec734220fb4c8329ab366c7..3826a8710aeb63b7418c5b04c3283f692c961ddd 100644 (file)
@@ -139,7 +139,7 @@ public class ContextUtils {
         * Put into common map the values from child map which are not already\r
         * defined in common map.\r
         */\r
-       private static void putNotContained(Map<String, Object> commonMap,\r
+       public static void putNotContained(Map<String, Object> commonMap,\r
                        Map<String, Object> childMap) {\r
                for (String key : childMap.keySet()) {\r
                        if (!commonMap.containsKey(key)) {\r
@@ -149,7 +149,7 @@ public class ContextUtils {
        }\r
 \r
        /** Overrides child map values with the values already set in common map */\r
-       private static void overrideContained(Map<String, Object> commonMap,\r
+       public static void overrideContained(Map<String, Object> commonMap,\r
                        Map<String, Object> childMap) {\r
                for (String key : childMap.keySet()) {\r
                        if (commonMap.containsKey(key)) {\r
index da0fae6b081f66b17ff3ec653a11aabb6b240ed9..5024df1186be3e5c9ec459f5186c07fef864e6c1 100644 (file)
@@ -14,6 +14,10 @@ public class UnitTestTreeUtil {
                        int index, Integer status, String message) {\r
                TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
                PartSubList list = testResult.getResultParts().get(path);\r
+               if (list == null) {\r
+                       TestCase.fail("No result for path " + path);\r
+                       return;\r
+               }\r
                SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);\r
                TestCase.assertEquals(status, part.getStatus());\r
                TestCase.assertEquals(message, part.getMessage());\r