public void testVersionedChild() {
ObjectContentManager ocm = getObjectContentManager();
try {
PressRelease pressRelease = new PressRelease();
pressRelease.setContent("content v1");
pressRelease.setPath("/pressrelease1");
pressRelease.setPubDate(new Date());
pressRelease.setTitle("Title");
Author author = new Author();
author.setName("John");
pressRelease.setAuthor(author);
ocm.insert(pressRelease);
ocm.save();
pressRelease.setContent("content v2");
ocm.checkout("/pressrelease1");
ocm.update(pressRelease);
ocm.save();
ocm.checkin("/pressrelease1");
pressRelease.setContent("content v3");
ocm.checkout("/pressrelease1");
ocm.update(pressRelease);
ocm.save();
ocm.checkin("/pressrelease1");
VersionIterator versionIterator = ocm
.getAllVersions("/pressrelease1");
assertNotNull("VersionIterator is null", versionIterator);
assertTrue("Invalid number of versions found", versionIterator
.getSize() == 3);
while (versionIterator.hasNext()) {
Version version = (Version) versionIterator.next();
log.info("version found : " + version.getName() + " - "
+ version.getPath() + " - "
+ version.getCreated().getTime());
if (version.getName().equals("jcr:rootVersion")) {
continue;
}
pressRelease = (PressRelease) ocm.getObject("/pressrelease1",
version.getName());
assertNotNull("pressRelease is null for version "
+ version.getName(), pressRelease);
if (version.getName().equals("1.0")) {
assertEquals("Invalid content for version "
+ version.getName(), pressRelease.getContent(),
"content v2");
}
if (version.getName().equals("1.1")) {
assertEquals("Invalid title for version "
+ version.getName(), pressRelease.getContent(),
"content v3");
}
}