String uuidLink = impl.createNewImportedRule( "testLinkedAssetItemHistoryRelatedRule",
"testLinkedAssetItemHistoryRelatedPack" );
assertTrue( uuidLink.equals( uuid ) );
//create version 1.
RuleAsset assetWrapper = impl.loadRuleAsset( uuidLink );
assertEquals( assetWrapper.metaData.description,
"an initial desc" );
assetWrapper.metaData.description = "version 1";
String uuidLink1 = impl.checkinVersion( assetWrapper );
//create version 2
RuleAsset assetWrapper2 = impl.loadRuleAsset( uuidLink );
assetWrapper2.metaData.description = "version 2";
String uuidLink2 = impl.checkinVersion( assetWrapper2 );
//create version head
RuleAsset assetWrapper3 = impl.loadRuleAsset( uuidLink );
assetWrapper3.metaData.description = "version head";
String uuidLink3 = impl.checkinVersion( assetWrapper3 );
assertEquals( uuidLink,
uuidLink1 );
assertEquals( uuidLink,
uuidLink2 );
//verify the history info of LinkedAssetItem
TableDataResult result = impl.loadAssetHistory( uuidLink );
assertNotNull( result );
TableDataRow[] rows = result.data;
assertEquals( 3,
rows.length );
assertFalse( rows[0].id.equals( uuidLink ) );
assertFalse( rows[1].id.equals( uuidLink ) );
assertFalse( rows[2].id.equals( uuidLink ) );
RuleAsset version1 = impl.loadRuleAsset( rows[0].id );
RuleAsset version2 = impl.loadRuleAsset( rows[1].id );
RuleAsset version3 = impl.loadRuleAsset( rows[2].id );
RuleAsset versionHead = impl.loadRuleAsset( uuidLink );
assertFalse( version1.metaData.versionNumber == version2.metaData.versionNumber );
assertFalse( version1.metaData.versionNumber == versionHead.metaData.versionNumber );
assertEquals( version1.metaData.description,
"an initial desc" );
assertEquals( version2.metaData.description,
"version 1" );
assertEquals( version3.metaData.description,
"version 2" );
assertEquals( versionHead.metaData.description,
"version head" );
//verify the history info of the original AssetItem
result = impl.loadAssetHistory( uuid );
assertNotNull( result );
rows = result.data;
assertEquals( 3,
rows.length );
assertFalse( rows[0].id.equals( uuid ) );
assertFalse( rows[1].id.equals( uuid ) );
version1 = impl.loadRuleAsset( rows[0].id );
version2 = impl.loadRuleAsset( rows[1].id );
versionHead = impl.loadRuleAsset( uuid );
assertFalse( version1.metaData.versionNumber == version2.metaData.versionNumber );
assertFalse( version1.metaData.versionNumber == versionHead.metaData.versionNumber );
assertTrue( version1.metaData.description.equals( "an initial desc" ) );
assertTrue( version2.metaData.description.equals( "version 1" ) );
assertTrue( versionHead.metaData.description.equals( "version head" ) );
//test restore
impl.restoreVersion( version1.uuid,
versionHead.uuid,
"this was cause of a mistake" );
RuleAsset newHead = impl.loadRuleAsset( uuid );
assertEquals( "this was cause of a mistake",
newHead.metaData.checkinComment );
}