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
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
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
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
\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
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
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
}\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
Map<String, Object> overrideExpectedValues) {\r
getExpectedValues().putAll(overrideExpectedValues);\r
}\r
+\r
+ public void setBasedon(String basedon) {\r
+ this.basedon = basedon;\r
+ }\r
+\r
}\r
* 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
}\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
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