### Question:
WrapperSupport implements Wrapper { public <T> T unwrap(Class<T> iface) throws SQLException { if (delegateType.equals(iface)) { return delegate.isWrapperFor(iface) ? delegate.unwrap(iface) : iface.cast(delegate); } else { return delegate.unwrap(iface); } } WrapperSupport(D delegate, Class<D> delegateType); boolean isWrapperFor(Class<?> iface); T unwrap(Class<T> iface);  }### Answer:
@Test public void testUnwrap() throws SQLException { when(realConnection.isWrapperFor(eq(Connection.class))).thenReturn(false); Connection connection = simonConnection.unwrap(Connection.class); assertSame(connection, realConnection); verify(realConnection).isWrapperFor(eq(Connection.class)); verifyNoMoreInteractions(realConnection); }