sysRoot.add( entry );
assertEquals( revision + 1, getService().getChangeLog().getCurrentRevision() );
Tag t0 = getService().getChangeLog().tag();
assertEquals( t0, getService().getChangeLog().getLatest() );
assertEquals( revision + 1, getService().getChangeLog().getCurrentRevision() );
assertEquals( revision + 1, t0.getRevision() );
// add another test entry
entry = new DefaultEntry( "ou=test1,ou=system",
"objectClass: organizationalUnit",
"ou: test1" );
sysRoot.add( entry );
assertEquals( revision + 2, getService().getChangeLog().getCurrentRevision() );
Tag t1 = getService().getChangeLog().tag();
assertEquals( t1, getService().getChangeLog().getLatest() );
assertEquals( revision + 2, getService().getChangeLog().getCurrentRevision() );
assertEquals( revision + 2, t1.getRevision() );
getService().shutdown();
getService().startup();
sysRoot = getAdminConnection( getService() );
assertEquals( revision + 2, getService().getChangeLog().getCurrentRevision() );
assertEquals( t1, getService().getChangeLog().getLatest() );
assertEquals( revision + 2, t1.getRevision() );
// add third test entry
entry = new DefaultEntry( "ou=test2,ou=system",
"objectClass: organizationalUnit",
"ou: test2" );
sysRoot.add( entry );
assertEquals( revision + 3, getService().getChangeLog().getCurrentRevision() );
getService().revert();
assertPresent( sysRoot, "ou=test0,ou=system" ); // test present
assertPresent( sysRoot, "ou=test1,ou=system" ); // test present
assertNotPresent( sysRoot, "ou=test2,ou=system" );
assertEquals( revision + 4, getService().getChangeLog().getCurrentRevision() );
assertEquals( t1, getService().getChangeLog().getLatest() );
getService().revert( t0.getRevision() );
assertPresent( sysRoot, "ou=test0,ou=system" ); // test present
assertNotPresent( sysRoot, "ou=test1,ou=system" );
assertNotPresent( sysRoot, "ou=test2,ou=system" );
assertEquals( revision + 7, getService().getChangeLog().getCurrentRevision() );
assertEquals( t1, getService().getChangeLog().getLatest() );
// no sync this time but should happen automatically
getService().shutdown();
getService().startup();
sysRoot = getAdminConnection( getService() );
assertEquals( revision + 7, getService().getChangeLog().getCurrentRevision() );
assertEquals( t1, getService().getChangeLog().getLatest() );
assertEquals( revision + 2, t1.getRevision() );
getService().revert( revision );
assertNotPresent( sysRoot, "ou=test0,ou=system" );
assertNotPresent( sysRoot, "ou=test1,ou=system" );
assertNotPresent( sysRoot, "ou=test2,ou=system" );