### Question:
DataObjectChecksumUtilitiesAOImpl extends IRODSGenericAO implements DataObjectChecksumUtilitiesAO { @Override public ChecksumValue retrieveExistingChecksumForDataObject(final String irodsDataObjectAbsolutePath) throws FileNotFoundException, JargonException { log.info("retrieveChecksumForDataObject()"); if (irodsDataObjectAbsolutePath == null || irodsDataObjectAbsolutePath.isEmpty()) { throw new IllegalArgumentException("null or empty irodsDataObjectAbsolutePath"); } log.info("irodsDataObjectAbsolutePath:{}", irodsDataObjectAbsolutePath); ObjStat objStat = collectionAndDataObjectListAndSearchAO.retrieveObjectStatForPath(irodsDataObjectAbsolutePath); return computeChecksumValueFromIrodsData(objStat.getChecksum()); } DataObjectChecksumUtilitiesAOImpl(final IRODSSession irodsSession, final IRODSAccount irodsAccount); @Override ChecksumValue retrieveExistingChecksumForDataObject(final String irodsDataObjectAbsolutePath); @Override ChecksumValue computeChecksumOnDataObject(final IRODSFile irodsFile); @Override ChecksumValue computeChecksumValueFromIrodsData(final String irodsValue); @Override ChecksumValue verifyLocalFileAgainstIrodsFileChecksum(final String localAbsolutePath,
			final String irodsAbsolutePath); static final Logger log; }### Answer:
@Test public void testRetrieveExistingChecksumForDataObject() throws Exception { String testFileName = "testChecksum.txt"; String absPath = scratchFileUtils.createAndReturnAbsoluteScratchPath(IRODS_TEST_SUBDIR_PATH); String fileNameOrig = FileGenerator.generateFileOfFixedLengthGivenName(absPath, testFileName, 2); String targetIrodsCollection = testingPropertiesHelper .buildIRODSCollectionAbsolutePathFromTestProperties(testingProperties, IRODS_TEST_SUBDIR_PATH); IRODSAccount irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSAccessObjectFactory accessObjectFactory = irodsFileSystem.getIRODSAccessObjectFactory(); DataTransferOperations dto = accessObjectFactory.getDataTransferOperations(irodsAccount); TransferControlBlock tcb = accessObjectFactory.buildDefaultTransferControlBlockBasedOnJargonProperties(); tcb.getTransferOptions().setComputeAndVerifyChecksumAfterTransfer(true); dto.putOperation(fileNameOrig, targetIrodsCollection, testingProperties.getProperty(TestingPropertiesHelper.IRODS_RESOURCE_KEY), null, tcb); IRODSFile testFile = irodsFileSystem.getIRODSFileFactory(irodsAccount) .instanceIRODSFile(targetIrodsCollection + '/' + testFileName); DataObjectChecksumUtilitiesAO dataObjectChecksumUtilitiesAO = irodsFileSystem.getIRODSAccessObjectFactory() .getDataObjectChecksumUtilitiesAO(irodsAccount); ChecksumValue actual = dataObjectChecksumUtilitiesAO .retrieveExistingChecksumForDataObject(testFile.getAbsolutePath()); Assert.assertNotNull("checksum missing", actual); }