### Question:
DelegateExecutionImpl implements BuildingBlockExecution, Serializable { @Override public <T> T getVariable(final String key) { return this.get(key); } DelegateExecutionImpl(final Map<String, Serializable> seedMap);  DelegateExecutionImpl(final DelegateExecution execution); @JsonIgnore @Override GeneralBuildingBlock getGeneralBuildingBlock(); @Override T getVariable(final String key); @Override T getRequiredVariable(final String key); @Override void setVariable(final String key, final Serializable value); @JsonIgnore @Override Map<ResourceKey, String> getLookupMap(); @JsonIgnore @Override String getFlowToBeCalled(); @JsonIgnore @Override int getCurrentSequence(); void setDelegateExecution(final DelegateExecution execution); @JsonIgnore DelegateExecution getDelegateExecution();  }### Answer:
@Test public void getVariable() throws RequiredExecutionVariableExeception { final Map<String, Serializable> map = new HashMap<>(); map.put("var1", "value1"); map.put("var2", "value2"); map.put("list1", (Serializable) Arrays.asList("value1", "value2")); final DelegateExecutionImpl impl = create(map); assertEquals("value1", impl.getVariable("var1")); assertEquals("value2", impl.getRequiredVariable("var2")); assertThat(impl.getVariable("list1"), IsIterableContainingInOrder.contains("value1", "value2")); }