### Question:
ParametersDelegateImpl implements Parameters { @SuppressWarnings("unchecked") @Override public <T> T get(String id) { Object object = internal.get(id); if (object == null) return delegate.get(id); return (T) object; }  Parameters setDelegate(Parameters delegate); @SuppressWarnings("unchecked") @Override T get(String id); @SuppressWarnings("unchecked") @Override T get(String id, T defaultValue); @Override Parameters put(String id, Object value); @Override Parameters putAll(Map<String, Object> values); @Override void clear(); @Override Parameters remove(String id);  }### Answer:
@Test public void shouldNotFailIfDelegateIsNull() { ParametersDelegateImpl parametersDelegate = new ParametersDelegateImpl(); assertEquals(null, parametersDelegate.get("a")); }
@Test public void shouldNotFailIfDelegateIsNull2() { ParametersDelegateImpl parametersDelegate = new ParametersDelegateImpl(); assertEquals("c", parametersDelegate.get("a", "c")); }