@Test
public void testNEXUS5418_storeItemWithChecksums()
throws Exception
{
final M2Repository repository = (M2Repository) getResourceStore();
Assert.assertTrue(repository.getRepositoryKind().isFacetAvailable(ProxyRepository.class));
String sha1str = "0123456789012345678901234567890123456789";
String md5str = "01234567012345670123456701234567";
StorageItem item = repository.retrieveItem(new ResourceStoreRequest("/spoof/simple.txt"));
repository.storeItem(false, new DefaultStorageFileItem(
repository, new ResourceStoreRequest(item.getPath() + ".sha1"), true, true, new StringContentLocator(sha1str))
);
repository.storeItem(false, new DefaultStorageFileItem(
repository, new ResourceStoreRequest(item.getPath() + ".md5"), true, true, new StringContentLocator(md5str))
);
// reread the item to refresh attributes map
item = repository.retrieveItem(new ResourceStoreRequest("/spoof/simple.txt"));
StorageFileItem sha1 =
(StorageFileItem) repository.retrieveItem(new ResourceStoreRequest("/spoof/simple.txt.sha1"));
Assert.assertEquals(item.getRepositoryItemAttributes().get(ChecksumContentValidator.ATTR_REMOTE_SHA1),
sha1str);
Assert.assertEquals(item.getModified(), sha1.getModified());
Assert.assertEquals(40, sha1.getLength());
StorageFileItem md5 =
(StorageFileItem) repository.retrieveItem(new ResourceStoreRequest("/spoof/simple.txt.md5"));
Assert.assertEquals(item.getRepositoryItemAttributes().get(ChecksumContentValidator.ATTR_REMOTE_MD5), md5str);
Assert.assertEquals(item.getModified(), md5.getModified());
Assert.assertEquals(32, md5.getLength());
}