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