--- /dev/null
+package org.argeo.slc.core.execution.tasks;\r
+\r
+import org.argeo.slc.SlcException;\r
+import org.argeo.slc.core.test.context.SimpleContextAware;\r
+import org.argeo.slc.core.test.context.SimpleParentContextAware;\r
+import org.argeo.slc.execution.Executable;\r
+import org.argeo.slc.test.context.ContextAware;\r
+\r
+public class OverrideContextAwareTask implements Executable {\r
+\r
+ private ContextAware source;\r
+\r
+ private SimpleContextAware target;\r
+ \r
+\r
+ public void setSource(ContextAware source) {\r
+ this.source = source;\r
+ }\r
+\r
+\r
+ public void setTarget(SimpleContextAware target) {\r
+ this.target = target;\r
+ }\r
+\r
+\r
+ public void execute() {\r
+ // override values\r
+ if(source.getValues() != null)\r
+ for(String key : source.getValues().keySet()) {\r
+ if(!target.getValues().containsKey(key)) {\r
+ throw new SlcException("No entry in target values for key '" + key + "'");\r
+ }\r
+ target.getValues().put(key, source.getValues().get(key));\r
+ }\r
+ \r
+ // override expected values\r
+ if(source.getExpectedValues() != null)\r
+ for(String key : source.getExpectedValues().keySet()) {\r
+ if(!target.getExpectedValues().containsKey(key)) {\r
+ throw new SlcException("No entry in target expected values for key '" + key + "'");\r
+ }\r
+ target.getExpectedValues().put(key, source.getExpectedValues().get(key));\r
+ } \r
+ } \r
+}\r