### Question:
RetryingMessageReader implements MessageReader { @Override public void close() throws IOException { delegate.close(); } RetryingMessageReader(MessageReader delegate); @Override @Retryable(value = { AmazonClientException.class }, maxAttempts = MAX_ATTEMPTS, backoff = @Backoff(delay = INITIAL_DELAY_MS, multiplier = BACKOFF_MULTIPLIER)) Optional<MessageEvent> read(); @Override @Retryable(include = { AmazonClientException.class }, maxAttempts = MAX_ATTEMPTS, backoff = @Backoff(delay = INITIAL_DELAY_MS, multiplier = BACKOFF_MULTIPLIER)) void delete(MessageEvent messageEvent); @Override void close(); @Recover Optional<MessageEvent> recoverRead(AmazonClientException e); @Recover void recoverDelete(AmazonClientException e, MessageEvent messageEvent);  }### Answer:
@Test public void typicalClose() throws IOException { retryingMessageReader.close(); verify(delegate).close(); }