DefaultExecution implements Execution { @Override public void pushContext(ExecutionContext context) { pushContext(context, true); }  @Override void pushContext(ExecutionContext context); @Override void pushContext(ExecutionContext context, boolean inherit); @Override void popContext(); @Override ExecutionContext getContext(); @Override void setContext(ExecutionContext context); @Override void removeContext();  }
@Test void pushContext() { Execution execution = new DefaultExecution(); execution.pushContext(new ExecutionContext()); execution.getContext().newProperty("inherited").inherited().initial("value").declare(); execution.pushContext(new ExecutionContext()); assertNotNull(execution.getContext().getProperty("inherited")); execution.pushContext(new ExecutionContext(), true); assertNotNull(execution.getContext().getProperty("inherited")); execution.pushContext(new ExecutionContext(), false); assertNull(execution.getContext().getProperty("inherited")); }