### Question:
FailedItemSource implements ItemSource<T> { @Override public void release() { this.itemSource.release(); } FailedItemSource(ItemSource<T> itemSource, FailedItemInfo info); FailedItemInfo getInfo(); @Override T getSource(); @Override void release(); @Override String toString();  }### Answer:
@Test public void releaseDelegatesToItemSource() { FailedItemInfo failedItemInfo = mock(FailedItemInfo.class); ItemSource<Object> itemSource = mock(ItemSource.class); FailedItemSource<Object> failedItemSource = new FailedItemSource<>(itemSource, failedItemInfo); failedItemSource.release(); verify(itemSource, times(1)).release(); }