### Question:
MemoryBasedTransferRestartManager extends AbstractRestartManager { @Override public FileRestartInfo retrieveRestart(final FileRestartInfoIdentifier fileRestartInfoIdentifier) throws FileRestartManagementException { log.info("retrieveRestart()"); if (fileRestartInfoIdentifier == null) { throw new IllegalArgumentException("null fileRestartInfoIdentifier"); } synchronized (this) { return cacheOfRestartInfo.get(fileRestartInfoIdentifier); } } MemoryBasedTransferRestartManager(); @Override FileRestartInfoIdentifier storeRestart(final FileRestartInfo fileRestartInfo); @Override void deleteRestart(final FileRestartInfoIdentifier fileRestartInfoIdentifier); @Override FileRestartInfo retrieveRestart(final FileRestartInfoIdentifier fileRestartInfoIdentifier); @Override void updateSegment(final FileRestartInfo fileRestartInfo,
			final FileRestartDataSegment fileRestartDataSegment); @Override FileRestartInfo incrementRestartAttempts(final FileRestartInfo fileRestartInfo);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testRetrieveViaNull() throws Exception { MemoryBasedTransferRestartManager manager = new MemoryBasedTransferRestartManager(); manager.retrieveRestart(null); }