### Question:
SynchronizedRunListener extends RunListener { @Override public String toString() { return listener.toString() + " (with synchronization wrapper)"; } SynchronizedRunListener(RunListener listener, Object monitor); @Override void testRunStarted(Description description); @Override void testRunFinished(Result result); @Override void testStarted(Description description); @Override void testFinished(Description description); @Override void testFailure(Failure failure); @Override void testAssumptionFailure(Failure failure); @Override void testIgnored(Description description); @Override int hashCode(); @Override boolean equals(Object other); @Override String toString();  }### Answer:
@Test public void toStringDelegates() { NamedListener listener = new NamedListener("blue"); assertEquals("NamedListener", listener.toString()); assertEquals("NamedListener (with synchronization wrapper)", wrap(listener).toString()); }