### Question:
DelegateInvocationHandler implements InvocationHandler { public T cement() { return concrete.get(); } DelegateInvocationHandler( final Class<T> interfaceClass ); T setDelegate( T delegate ); @Override Object invoke( Object proxy, Method method, Object[] args ); T cement(); @Override String toString();  }### Answer:
@Test public void shouldNotBeAbleToUseValueBeforeHardened() { DelegateInvocationHandler<Value> handler = newDelegateInvocationHandler(); Value value = handler.cement(); try { value.get(); fail( "Should fail" ); } catch ( Exception e ) { assertThat( e, instanceOf( TransientDatabaseFailureException.class ) ); } }