[jboss-svn-commits] JBL Code SVN: r8379 - in labs/jbossrules/trunk/drools-repository/src: main/java/org/drools/repository test/java/org/drools/repository
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Dec 18 06:21:32 EST 2006
Author: michael.neale at jboss.com
Date: 2006-12-18 06:21:12 -0500 (Mon, 18 Dec 2006)
New Revision: 8379
Added:
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTest.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySessionUtil.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
Removed:
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTestCase.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTestCase.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySession.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java
Modified:
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
Log:
refactored for maven friendly test names, added much improved test coverage for important scenarios.
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -37,7 +37,7 @@
* This is the name of the rules "subfolder" where rules are kept
* for this package.
*/
- public static final String RULES_FOLDER_NAME = "rules";
+ public static final String ASSET_FOLDER_NAME = "assets";
/**
* The name of the reference property on the rulepackage_node_type type node that objects of
@@ -111,7 +111,7 @@
Node ruleNode;
try {
- Node rulesFolder = this.node.getNode( RULES_FOLDER_NAME );
+ Node rulesFolder = this.node.getNode( ASSET_FOLDER_NAME );
ruleNode = rulesFolder.addNode( assetName,
AssetItem.RULE_NODE_TYPE_NAME );
ruleNode.setProperty( AssetItem.TITLE_PROPERTY_NAME,
@@ -143,10 +143,8 @@
return rule;
- } catch ( Exception e ) {
- if ( e instanceof RuntimeException ) {
- throw (RuntimeException) e;
- } else if ( e instanceof ItemExistsException ) {
+ } catch ( RepositoryException e ) {
+ if ( e instanceof ItemExistsException ) {
throw new RulesRepositoryException( "A rule of that name already exists in that package.",
e );
} else {
@@ -163,7 +161,7 @@
*/
public void removeAsset(String name) {
try {
- this.node.getNode( RULES_FOLDER_NAME + "/" + name ).remove();
+ this.node.getNode( ASSET_FOLDER_NAME + "/" + name ).remove();
} catch ( RepositoryException e ) {
throw new RulesRepositoryException( e );
}
@@ -323,11 +321,9 @@
public Iterator getAssets() {
try {
Node content = getVersionContentNode();
- AssetItemIterator it = new AssetItemIterator( content.getNode( RULES_FOLDER_NAME ).getNodes(),
+ AssetItemIterator it = new AssetItemIterator( content.getNode( ASSET_FOLDER_NAME ).getNodes(),
this.rulesRepository );
- return it;
- } catch ( PathNotFoundException e ) {
- throw new RulesRepositoryException( e );
+ return it;
} catch ( RepositoryException e ) {
throw new RulesRepositoryException( e );
}
@@ -347,7 +343,7 @@
//String sql = "SELECT * FROM drools:ruleNodeType WHERE jcr:path LIKE '/drools:repository/drools:rulepackage_area/searchByFormat/rules[%]/%'";
String sql = "SELECT * FROM " + AssetItem.RULE_NODE_TYPE_NAME;
- sql += " WHERE jcr:path LIKE '" + getVersionContentNode().getPath() + "/" + RULES_FOLDER_NAME + "[%]/%'";
+ sql += " WHERE jcr:path LIKE '" + getVersionContentNode().getPath() + "/" + ASSET_FOLDER_NAME + "[%]/%'";
sql += " and " + fieldPredicates;
@@ -369,7 +365,7 @@
Node content = getVersionContentNode();
return new AssetItem(
this.rulesRepository,
- content.getNode( RULES_FOLDER_NAME ).getNode( name ));
+ content.getNode( ASSET_FOLDER_NAME ).getNode( name ));
} catch ( RepositoryException e ) {
throw new RulesRepositoryException(e);
}
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -479,7 +479,7 @@
//create the node - see section 6.7.22.6 of the spec
Node rulePackageNode = folderNode.addNode(name, PackageItem.RULE_PACKAGE_TYPE_NAME);
- rulePackageNode.addNode( PackageItem.RULES_FOLDER_NAME, "drools:versionableAssetFolder" );
+ rulePackageNode.addNode( PackageItem.ASSET_FOLDER_NAME, "drools:versionableAssetFolder" );
rulePackageNode.addNode( PackageItem.FUNCTION_FOLDER_NAME, "drools:versionableAssetFolder" );
@@ -556,7 +556,7 @@
return new CategoryItem(this, tagNode);
}
- catch(Exception e) {
+ catch(RepositoryException e) {
if (e instanceof PathNotFoundException) {
throw new RulesRepositoryException("Unable to load the category : [" + tagName + "] does not exist.", e);
}
@@ -651,7 +651,7 @@
PackageItem destPkg = loadPackage( newPackage );
String sourcePath = item.node.getPath();
- String destPath = destPkg.node.getPath() + "/" + PackageItem.RULES_FOLDER_NAME + "/" + item.getName();
+ String destPath = destPkg.node.getPath() + "/" + PackageItem.ASSET_FOLDER_NAME + "/" + item.getName();
this.session.move(sourcePath , destPath );
Copied: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java (from rev 8378, labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -0,0 +1,548 @@
+package org.drools.repository;
+
+import java.util.Calendar;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public class AssetItemTest extends TestCase {
+
+
+ private RulesRepository getRepo() {
+ return RepositorySessionUtil.getRepository();
+ }
+
+ private PackageItem getDefaultPackage() {
+ return getRepo().loadDefaultPackage();
+ }
+
+ public void testRuleItemCreation() throws Exception {
+
+ Calendar now = Calendar.getInstance();
+
+ Thread.sleep(500); //MN: need this sleep to get the correct date
+
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testRuleItem", "test content");
+
+ assertNotNull(ruleItem1);
+ assertNotNull(ruleItem1.getNode());
+ assertEquals("testRuleItem", ruleItem1.getName());
+
+ assertNotNull(ruleItem1.getCreatedDate());
+
+ assertTrue(now.before( ruleItem1.getCreatedDate() ));
+
+ String packName = getDefaultPackage().getName();
+
+ assertEquals(packName, ruleItem1.getPackageName());
+
+
+ //try constructing with node of wrong type
+ try {
+
+ PackageItem pitem = getRepo().loadDefaultPackage();
+ new AssetItem(getRepo(), pitem.getNode());
+ fail("Exception not thrown for node of wrong type");
+ }
+ catch(RulesRepositoryException e) {
+ assertNotNull(e.getMessage());
+ }
+ catch(Exception e) {
+ fail("Caught unexpected exception: " + e);
+ }
+ }
+
+ public void testGetContent() {
+
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetContent", "test content");
+ ruleItem1.updateContent( "test content" );
+
+ assertNotNull(ruleItem1);
+ assertNotNull(ruleItem1.getNode());
+ assertEquals("test content", ruleItem1.getContent());
+ }
+
+ public void testGetURI() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetURI", "blah");
+ ruleItem1.checkin( "version0" );
+ ruleItem1.updateContentURI( "foo/bar" );
+ ruleItem1.checkin( "ha !" );
+ assertNotNull(ruleItem1);
+ assertNotNull(ruleItem1.getNode());
+ assertEquals("foo/bar", ruleItem1.getContentURI());
+ }
+
+ public void testUpdateContent() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testUpdateContent", "test description");
+ ruleItem1.updateContent( "test content" );
+ ruleItem1.checkin( "yeah" );
+
+ ruleItem1.updateContent( "new rule content");
+
+ assertEquals("new rule content", ruleItem1.getContent());
+
+ ruleItem1.checkin( "yeah !" );
+
+ assertEquals("yeah !", ruleItem1.getCheckinComment());
+
+ AssetItem prev = (AssetItem) ruleItem1.getPredecessorVersionsIterator().next();
+ assertEquals("test content", prev.getContent());
+ assertFalse("yeah !".equals(prev.getCheckinComment()));
+
+
+ assertEquals(prev, ruleItem1.getPrecedingVersion());
+
+ }
+
+
+ public void testCategories() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testAddTag", "test content");
+
+ getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag", "description" );
+
+ ruleItem1.addCategory("testAddTagTestTag");
+ List tags = ruleItem1.getCategories();
+ assertEquals(1, tags.size());
+ assertEquals("testAddTagTestTag", ((CategoryItem)tags.get(0)).getName());
+
+ getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag2", "description" );
+ ruleItem1.addCategory("testAddTagTestTag2");
+ tags = ruleItem1.getCategories();
+ assertEquals(2, tags.size());
+
+ ruleItem1.checkin( "woot" );
+
+ //now test retrieve by tags
+ List result = getRepo().findAssetsByCategory("testAddTagTestTag");
+ assertEquals(1, result.size());
+ AssetItem retItem = (AssetItem) result.get( 0 );
+ assertEquals("testAddTag", retItem.getName());
+
+ ruleItem1.updateContent( "foo" );
+ ruleItem1.checkin( "latest" );
+
+ result = getRepo().findAssetsByCategory( "testAddTagTestTag" );
+
+ assertEquals(1, result.size());
+
+ ruleItem1 = (AssetItem) result.get( 0 );
+ assertEquals(2, ruleItem1.getCategories().size());
+
+ assertEquals("foo", ruleItem1.getContent());
+ AssetItem prev = (AssetItem) ruleItem1.getPrecedingVersion();
+ assertNotNull(prev);
+
+ }
+
+ public void testFindRulesByCategory() throws Exception {
+
+ getRepo().loadCategory( "/" ).addCategory( "testFindRulesByCat", "yeah" );
+ getDefaultPackage().addAsset( "testFindRulesByCategory1", "ya", "testFindRulesByCat" ).checkin( "version0" );
+ getDefaultPackage().addAsset( "testFindRulesByCategory2", "ya", "testFindRulesByCat" ).checkin( "version0" );
+
+
+ List rules = getRepo().findAssetsByCategory( "testFindRulesByCat" );
+ assertEquals(2, rules.size());
+
+ for ( Iterator iter = rules.iterator(); iter.hasNext(); ) {
+ AssetItem element = (AssetItem) iter.next();
+ assertTrue(element.getName().startsWith( "testFindRulesByCategory" ));
+ }
+
+ }
+
+
+ public void testRemoveTag() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testRemoveTag", "test content");
+
+ getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory", "description" );
+
+ ruleItem1.addCategory("TestRemoveCategory");
+ List tags = ruleItem1.getCategories();
+ assertEquals(1, tags.size());
+ ruleItem1.removeCategory("TestRemoveCategory");
+ tags = ruleItem1.getCategories();
+ assertEquals(0, tags.size());
+
+ getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory2", "description" );
+ getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory3", "description" );
+ ruleItem1.addCategory("TestRemoveCategory2");
+ ruleItem1.addCategory("TestRemoveCategory3");
+ ruleItem1.removeCategory("TestRemoveCategory2");
+ tags = ruleItem1.getCategories();
+ assertEquals(1, tags.size());
+ assertEquals("TestRemoveCategory3", ((CategoryItem)tags.get(0)).getName());
+
+ }
+
+ public void testGetTags() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetTags", "test content");
+
+ List tags = ruleItem1.getCategories();
+ assertNotNull(tags);
+ assertEquals(0, tags.size());
+
+ getRepo().loadCategory( "/" ).addCategory( "testGetTagsTestTag", "description" );
+
+ ruleItem1.addCategory("testGetTagsTestTag");
+ tags = ruleItem1.getCategories();
+ assertEquals(1, tags.size());
+ assertEquals("testGetTagsTestTag", ((CategoryItem)tags.get(0)).getName());
+
+ }
+
+ public void testSetStateString() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testSetStateString", "test content");
+
+ ruleItem1.updateState("TestState1");
+ assertNotNull(ruleItem1.getState());
+ assertEquals("TestState1", ruleItem1.getState().getName());
+
+ ruleItem1.updateState("TestState2");
+ assertNotNull(ruleItem1.getState());
+ assertEquals("TestState2", ruleItem1.getState().getName());
+
+ }
+
+ public void testSetStateStateItem() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("foobar", "test description");
+
+ StateItem stateItem1 = getRepo().getState("TestState1");
+ ruleItem1.updateState(stateItem1);
+ assertNotNull(ruleItem1.getState());
+ assertEquals(ruleItem1.getState().getName(), "TestState1");
+
+ StateItem stateItem2 = getRepo().getState("TestState2");
+ ruleItem1.updateState(stateItem2);
+ assertNotNull(ruleItem1.getState());
+ assertEquals("TestState2", ruleItem1.getState().getName());
+
+ }
+
+ public void testStatusStuff() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetState", "test content");
+
+ StateItem stateItem1 = ruleItem1.getState();
+ assertEquals(StateItem.DRAFT_STATE_NAME, stateItem1.getName());
+
+ ruleItem1.updateState("TestState1");
+ assertNotNull(ruleItem1.getState());
+ assertEquals("TestState1", ruleItem1.getState().getName());
+
+ ruleItem1 = getDefaultPackage().addAsset( "testGetState2", "wa" );
+ assertEquals(StateItem.DRAFT_STATE_NAME, ruleItem1.getStateDescription());
+ assertEquals(getRepo().getState( StateItem.DRAFT_STATE_NAME ), ruleItem1.getState());
+ }
+
+
+ public void testToString() {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testToString", "test content");
+
+ assertNotNull(ruleItem1.toString());
+
+ }
+
+ public void testGetLastModifiedOnCheckin() throws Exception {
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetLastModified", "test content");
+
+ Calendar cal = Calendar.getInstance();
+ long before = cal.getTimeInMillis();
+
+ Thread.sleep( 100 );
+ ruleItem1.updateContent("new lhs");
+ ruleItem1.checkin( "woot" );
+ Calendar cal2 = ruleItem1.getLastModified();
+ long lastMod = cal2.getTimeInMillis();
+
+ cal = Calendar.getInstance();
+ long after = cal.getTimeInMillis();
+
+
+
+ assertTrue(before < lastMod);
+ assertTrue(lastMod < after);
+
+ }
+
+ public void testGetDateEffective() {
+
+ AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetDateEffective", "test content");
+
+ //it should be initialized to null
+ assertTrue(ruleItem1.getDateEffective() == null);
+
+ //now try setting it, then retrieving it
+ Calendar cal = Calendar.getInstance();
+ ruleItem1.updateDateEffective(cal);
+ Calendar cal2 = ruleItem1.getDateEffective();
+
+ assertEquals(cal, cal2);
+ }
+
+ public void testGetDateExpired() {
+ try {
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetDateExpired", "test content");
+
+ //it should be initialized to null
+ assertTrue(ruleItem1.getDateExpired() == null);
+
+ //now try setting it, then retrieving it
+ Calendar cal = Calendar.getInstance();
+ ruleItem1.updateDateExpired(cal);
+ Calendar cal2 = ruleItem1.getDateExpired();
+
+ assertEquals(cal, cal2);
+ }
+ catch(Exception e) {
+ fail("Caught unexpected exception: " + e);
+ }
+ }
+
+
+ public void testSaveAndCheckinDescriptionAndTitle() throws Exception {
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetDescription", "");
+ ruleItem1.checkin( "version0" );
+
+ //it should be "" to begin with
+ assertEquals("", ruleItem1.getDescription());
+
+ ruleItem1.updateDescription("test description");
+ assertEquals("test description", ruleItem1.getDescription());
+
+
+
+
+ assertTrue(getRepo().getSession().hasPendingChanges());
+
+ ruleItem1.updateTitle( "This is a title" );
+ assertTrue(getRepo().getSession().hasPendingChanges());
+ ruleItem1.checkin( "ya" );
+
+
+ //we can save without a checkin
+ getRepo().getSession().save();
+
+ assertFalse(getRepo().getSession().hasPendingChanges());
+
+
+ try {
+ ruleItem1.getPrecedingVersion().updateTitle( "baaad" );
+ fail("should not be able to do this");
+ } catch (RulesRepositoryException e) {
+ assertNotNull(e.getMessage());
+ }
+
+ }
+
+ public void testGetPrecedingVersion() {
+
+ getRepo().loadCategory( "/" ).addCategory( "foo", "ka" );
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetPrecedingVersion", "descr");
+ ruleItem1.checkin( "version0" );
+ assertTrue(ruleItem1.getPrecedingVersion() == null);
+
+
+
+ ruleItem1.addCategory( "foo" );
+ ruleItem1.updateContent( "test content" );
+ ruleItem1.checkin( "boo" );
+
+
+ AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+ assertNotNull(predecessorRuleItem);
+
+
+
+ ruleItem1.updateContent("new content");
+ ruleItem1.updateContentURI( "foobar" );
+ ruleItem1.checkin( "two changes" );
+
+ predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+ assertNotNull(predecessorRuleItem);
+ assertEquals(1, predecessorRuleItem.getCategories().size());
+ CategoryItem cat = (CategoryItem) predecessorRuleItem.getCategories().get( 0 );
+ assertEquals("foo", cat.getName());
+
+
+ assertEquals("test content", predecessorRuleItem.getContent());
+
+ assertEquals("descr", predecessorRuleItem.getDescription());
+
+ assertEquals("default", predecessorRuleItem.getPackageName());
+
+
+
+ ruleItem1.updateContent("newer lhs");
+ ruleItem1.checkin( "another" );
+
+ predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+ assertNotNull(predecessorRuleItem);
+ assertEquals("new content", predecessorRuleItem.getContent());
+ predecessorRuleItem = (AssetItem) predecessorRuleItem.getPrecedingVersion();
+ assertNotNull(predecessorRuleItem);
+ assertEquals("test content", predecessorRuleItem.getContent());
+
+ }
+
+ public void testGetSucceedingVersion() {
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetSucceedingVersion", "test description");
+ ruleItem1.checkin( "version0" );
+
+ assertEquals("1", ruleItem1.getVersionNumber());
+
+ AssetItem succeedingRuleItem = (AssetItem) ruleItem1.getSucceedingVersion();
+ assertTrue(succeedingRuleItem == null);
+
+ ruleItem1.updateContent("new content");
+ ruleItem1.checkin( "la" );
+
+ assertEquals("2", ruleItem1.getVersionNumber());
+
+ AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+ assertEquals(null, predecessorRuleItem.getContent());
+ succeedingRuleItem = (AssetItem) predecessorRuleItem.getSucceedingVersion();
+ assertNotNull(succeedingRuleItem);
+ assertEquals(ruleItem1.getContent(), succeedingRuleItem.getContent());
+ }
+
+ public void testGetSuccessorVersionsIterator() {
+ try {
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetSuccessorVersionsIterator", "test content");
+ ruleItem1.checkin( "version0" );
+
+ Iterator iterator = ruleItem1.getSuccessorVersionsIterator();
+ assertNotNull(iterator);
+ assertFalse(iterator.hasNext());
+
+ ruleItem1.updateContent("new content").checkin( "ya" );
+
+
+ iterator = ruleItem1.getSuccessorVersionsIterator();
+ assertNotNull(iterator);
+ assertFalse(iterator.hasNext());
+
+ AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+ iterator = predecessorRuleItem.getSuccessorVersionsIterator();
+ assertNotNull(iterator);
+ assertTrue(iterator.hasNext());
+ AssetItem nextRuleItem = (AssetItem) iterator.next();
+ assertEquals("new content", nextRuleItem.getContent());
+ assertFalse(iterator.hasNext());
+
+ ruleItem1.updateContent("newer content");
+ ruleItem1.checkin( "boo" );
+
+ iterator = predecessorRuleItem.getSuccessorVersionsIterator();
+ assertNotNull(iterator);
+ assertTrue(iterator.hasNext());
+ nextRuleItem = (AssetItem) iterator.next();
+ assertEquals("new content", nextRuleItem.getContent());
+ assertTrue(iterator.hasNext());
+ nextRuleItem = (AssetItem)iterator.next();
+ assertEquals("newer content", nextRuleItem.getContent());
+ assertFalse(iterator.hasNext());
+ }
+ catch(Exception e) {
+ fail("Caught unexpected exception: " + e);
+ }
+ }
+
+ public void testGetPredecessorVersionsIterator() {
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetPredecessorVersionsIterator", "test description");
+ ruleItem1.checkin( "version0" );
+
+ Iterator iterator = ruleItem1.getPredecessorVersionsIterator();
+ assertNotNull(iterator);
+ assertFalse(iterator.hasNext());
+
+ ruleItem1.updateContent( "test content" );
+ ruleItem1.checkin( "lalalalala" );
+
+ iterator = ruleItem1.getPredecessorVersionsIterator();
+ assertNotNull(iterator);
+ assertTrue(iterator.hasNext());
+
+ ruleItem1.updateContent("new content");
+ ruleItem1.checkin( "boo" );
+
+ iterator = ruleItem1.getPredecessorVersionsIterator();
+ assertNotNull(iterator);
+ assertTrue(iterator.hasNext());
+ AssetItem nextRuleItem = (AssetItem) iterator.next();
+
+ assertEquals("test content", nextRuleItem.getContent());
+
+ ruleItem1.updateContent("newer content");
+ ruleItem1.checkin( "wee" );
+
+
+ iterator = ruleItem1.getPredecessorVersionsIterator();
+ assertNotNull(iterator);
+ assertTrue(iterator.hasNext());
+ nextRuleItem = (AssetItem) iterator.next();
+ assertTrue(iterator.hasNext());
+ assertEquals("new content", nextRuleItem.getContent());
+ nextRuleItem = (AssetItem) iterator.next();
+
+ assertEquals("test content", nextRuleItem.getContent());
+
+ assertEquals(null, ((AssetItem) iterator.next()).getContent());
+
+ }
+
+ public void testGetTitle() {
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetTitle", "test content");
+
+ assertEquals("testGetTitle", ruleItem1.getTitle());
+ }
+
+ public void testDublinCoreProperties() {
+ PackageItem pkg = getRepo().createPackage( "testDublinCore", "wa" );
+
+ AssetItem ruleItem = pkg.addAsset( "testDublinCoreProperties", "yeah yeah yeah" );
+ ruleItem.updateCoverage( "b" );
+ assertEquals("b",ruleItem.getCoverage());
+
+ ruleItem.updateLastContributor( "me" );
+ ruleItem.checkin( "woo" );
+
+ pkg = getRepo().loadPackage( "testDublinCore" );
+ ruleItem = (AssetItem) pkg.getAssets().next();
+
+ assertEquals("b", ruleItem.getCoverage());
+ assertEquals("me", ruleItem.getLastContributor());
+
+ assertEquals("", ruleItem.getExternalRelation());
+ assertEquals("", ruleItem.getExternalSource());
+
+ }
+
+ public void testGetFormat() {
+ AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetFormat", "test content");
+
+ assertEquals("DRL", ruleItem1.getFormat());
+
+ ruleItem1.updateFormat( "blah" );
+ assertEquals("blah", ruleItem1.getFormat());
+ }
+
+ public void testAnonymousProperties() {
+ AssetItem item = getRepo().loadDefaultPackage().addAsset( "anonymousproperty", "lalalalala" );
+ item.updateUserProperty( "fooBar", "value");
+ assertEquals("value", item.getUserProperty("fooBar"));
+
+
+
+ item.checkin( "lalalala" );
+ try {
+ item.updateUserProperty( "drools:content", "whee" );
+ fail("should not be able to set build in properties this way.");
+ }
+ catch (IllegalArgumentException e) {
+ assertNotNull(e.getMessage());
+ }
+
+
+ }
+}
Deleted: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -1,548 +0,0 @@
-package org.drools.repository;
-
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-public class AssetItemTestCase extends TestCase {
-
-
- private RulesRepository getRepo() {
- return RepositorySession.getRepository();
- }
-
- private PackageItem getDefaultPackage() {
- return getRepo().loadDefaultPackage();
- }
-
- public void testRuleItemCreation() throws Exception {
-
- Calendar now = Calendar.getInstance();
-
- Thread.sleep(500); //MN: need this sleep to get the correct date
-
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testRuleItem", "test content");
-
- assertNotNull(ruleItem1);
- assertNotNull(ruleItem1.getNode());
- assertEquals("testRuleItem", ruleItem1.getName());
-
- assertNotNull(ruleItem1.getCreatedDate());
-
- assertTrue(now.before( ruleItem1.getCreatedDate() ));
-
- String packName = getDefaultPackage().getName();
-
- assertEquals(packName, ruleItem1.getPackageName());
-
-
- //try constructing with node of wrong type
- try {
-
- PackageItem pitem = getRepo().loadDefaultPackage();
- new AssetItem(getRepo(), pitem.getNode());
- fail("Exception not thrown for node of wrong type");
- }
- catch(RulesRepositoryException e) {
- assertNotNull(e.getMessage());
- }
- catch(Exception e) {
- fail("Caught unexpected exception: " + e);
- }
- }
-
- public void testGetContent() {
-
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetContent", "test content");
- ruleItem1.updateContent( "test content" );
-
- assertNotNull(ruleItem1);
- assertNotNull(ruleItem1.getNode());
- assertEquals("test content", ruleItem1.getContent());
- }
-
- public void testGetURI() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetURI", "blah");
- ruleItem1.checkin( "version0" );
- ruleItem1.updateContentURI( "foo/bar" );
- ruleItem1.checkin( "ha !" );
- assertNotNull(ruleItem1);
- assertNotNull(ruleItem1.getNode());
- assertEquals("foo/bar", ruleItem1.getContentURI());
- }
-
- public void testUpdateContent() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testUpdateContent", "test description");
- ruleItem1.updateContent( "test content" );
- ruleItem1.checkin( "yeah" );
-
- ruleItem1.updateContent( "new rule content");
-
- assertEquals("new rule content", ruleItem1.getContent());
-
- ruleItem1.checkin( "yeah !" );
-
- assertEquals("yeah !", ruleItem1.getCheckinComment());
-
- AssetItem prev = (AssetItem) ruleItem1.getPredecessorVersionsIterator().next();
- assertEquals("test content", prev.getContent());
- assertFalse("yeah !".equals(prev.getCheckinComment()));
-
-
- assertEquals(prev, ruleItem1.getPrecedingVersion());
-
- }
-
-
- public void testCategories() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testAddTag", "test content");
-
- getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag", "description" );
-
- ruleItem1.addCategory("testAddTagTestTag");
- List tags = ruleItem1.getCategories();
- assertEquals(1, tags.size());
- assertEquals("testAddTagTestTag", ((CategoryItem)tags.get(0)).getName());
-
- getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag2", "description" );
- ruleItem1.addCategory("testAddTagTestTag2");
- tags = ruleItem1.getCategories();
- assertEquals(2, tags.size());
-
- ruleItem1.checkin( "woot" );
-
- //now test retrieve by tags
- List result = getRepo().findAssetsByCategory("testAddTagTestTag");
- assertEquals(1, result.size());
- AssetItem retItem = (AssetItem) result.get( 0 );
- assertEquals("testAddTag", retItem.getName());
-
- ruleItem1.updateContent( "foo" );
- ruleItem1.checkin( "latest" );
-
- result = getRepo().findAssetsByCategory( "testAddTagTestTag" );
-
- assertEquals(1, result.size());
-
- ruleItem1 = (AssetItem) result.get( 0 );
- assertEquals(2, ruleItem1.getCategories().size());
-
- assertEquals("foo", ruleItem1.getContent());
- AssetItem prev = (AssetItem) ruleItem1.getPrecedingVersion();
- assertNotNull(prev);
-
- }
-
- public void testFindRulesByCategory() throws Exception {
-
- getRepo().loadCategory( "/" ).addCategory( "testFindRulesByCat", "yeah" );
- getDefaultPackage().addAsset( "testFindRulesByCategory1", "ya", "testFindRulesByCat" ).checkin( "version0" );
- getDefaultPackage().addAsset( "testFindRulesByCategory2", "ya", "testFindRulesByCat" ).checkin( "version0" );
-
-
- List rules = getRepo().findAssetsByCategory( "testFindRulesByCat" );
- assertEquals(2, rules.size());
-
- for ( Iterator iter = rules.iterator(); iter.hasNext(); ) {
- AssetItem element = (AssetItem) iter.next();
- assertTrue(element.getName().startsWith( "testFindRulesByCategory" ));
- }
-
- }
-
-
- public void testRemoveTag() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testRemoveTag", "test content");
-
- getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory", "description" );
-
- ruleItem1.addCategory("TestRemoveCategory");
- List tags = ruleItem1.getCategories();
- assertEquals(1, tags.size());
- ruleItem1.removeCategory("TestRemoveCategory");
- tags = ruleItem1.getCategories();
- assertEquals(0, tags.size());
-
- getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory2", "description" );
- getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory3", "description" );
- ruleItem1.addCategory("TestRemoveCategory2");
- ruleItem1.addCategory("TestRemoveCategory3");
- ruleItem1.removeCategory("TestRemoveCategory2");
- tags = ruleItem1.getCategories();
- assertEquals(1, tags.size());
- assertEquals("TestRemoveCategory3", ((CategoryItem)tags.get(0)).getName());
-
- }
-
- public void testGetTags() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetTags", "test content");
-
- List tags = ruleItem1.getCategories();
- assertNotNull(tags);
- assertEquals(0, tags.size());
-
- getRepo().loadCategory( "/" ).addCategory( "testGetTagsTestTag", "description" );
-
- ruleItem1.addCategory("testGetTagsTestTag");
- tags = ruleItem1.getCategories();
- assertEquals(1, tags.size());
- assertEquals("testGetTagsTestTag", ((CategoryItem)tags.get(0)).getName());
-
- }
-
- public void testSetStateString() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testSetStateString", "test content");
-
- ruleItem1.updateState("TestState1");
- assertNotNull(ruleItem1.getState());
- assertEquals("TestState1", ruleItem1.getState().getName());
-
- ruleItem1.updateState("TestState2");
- assertNotNull(ruleItem1.getState());
- assertEquals("TestState2", ruleItem1.getState().getName());
-
- }
-
- public void testSetStateStateItem() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("foobar", "test description");
-
- StateItem stateItem1 = getRepo().getState("TestState1");
- ruleItem1.updateState(stateItem1);
- assertNotNull(ruleItem1.getState());
- assertEquals(ruleItem1.getState().getName(), "TestState1");
-
- StateItem stateItem2 = getRepo().getState("TestState2");
- ruleItem1.updateState(stateItem2);
- assertNotNull(ruleItem1.getState());
- assertEquals("TestState2", ruleItem1.getState().getName());
-
- }
-
- public void testStatusStuff() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetState", "test content");
-
- StateItem stateItem1 = ruleItem1.getState();
- assertEquals(StateItem.DRAFT_STATE_NAME, stateItem1.getName());
-
- ruleItem1.updateState("TestState1");
- assertNotNull(ruleItem1.getState());
- assertEquals("TestState1", ruleItem1.getState().getName());
-
- ruleItem1 = getDefaultPackage().addAsset( "testGetState2", "wa" );
- assertEquals(StateItem.DRAFT_STATE_NAME, ruleItem1.getStateDescription());
- assertEquals(getRepo().getState( StateItem.DRAFT_STATE_NAME ), ruleItem1.getState());
- }
-
-
- public void testToString() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testToString", "test content");
-
- assertNotNull(ruleItem1.toString());
-
- }
-
- public void testGetLastModifiedOnCheckin() throws Exception {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetLastModified", "test content");
-
- Calendar cal = Calendar.getInstance();
- long before = cal.getTimeInMillis();
-
- Thread.sleep( 100 );
- ruleItem1.updateContent("new lhs");
- ruleItem1.checkin( "woot" );
- Calendar cal2 = ruleItem1.getLastModified();
- long lastMod = cal2.getTimeInMillis();
-
- cal = Calendar.getInstance();
- long after = cal.getTimeInMillis();
-
-
-
- assertTrue(before < lastMod);
- assertTrue(lastMod < after);
-
- }
-
- public void testGetDateEffective() {
-
- AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetDateEffective", "test content");
-
- //it should be initialized to null
- assertTrue(ruleItem1.getDateEffective() == null);
-
- //now try setting it, then retrieving it
- Calendar cal = Calendar.getInstance();
- ruleItem1.updateDateEffective(cal);
- Calendar cal2 = ruleItem1.getDateEffective();
-
- assertEquals(cal, cal2);
- }
-
- public void testGetDateExpired() {
- try {
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetDateExpired", "test content");
-
- //it should be initialized to null
- assertTrue(ruleItem1.getDateExpired() == null);
-
- //now try setting it, then retrieving it
- Calendar cal = Calendar.getInstance();
- ruleItem1.updateDateExpired(cal);
- Calendar cal2 = ruleItem1.getDateExpired();
-
- assertEquals(cal, cal2);
- }
- catch(Exception e) {
- fail("Caught unexpected exception: " + e);
- }
- }
-
-
- public void testSaveAndCheckinDescriptionAndTitle() throws Exception {
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetDescription", "");
- ruleItem1.checkin( "version0" );
-
- //it should be "" to begin with
- assertEquals("", ruleItem1.getDescription());
-
- ruleItem1.updateDescription("test description");
- assertEquals("test description", ruleItem1.getDescription());
-
-
-
-
- assertTrue(getRepo().getSession().hasPendingChanges());
-
- ruleItem1.updateTitle( "This is a title" );
- assertTrue(getRepo().getSession().hasPendingChanges());
- ruleItem1.checkin( "ya" );
-
-
- //we can save without a checkin
- getRepo().getSession().save();
-
- assertFalse(getRepo().getSession().hasPendingChanges());
-
-
- try {
- ruleItem1.getPrecedingVersion().updateTitle( "baaad" );
- fail("should not be able to do this");
- } catch (RulesRepositoryException e) {
- assertNotNull(e.getMessage());
- }
-
- }
-
- public void testGetPrecedingVersion() {
-
- getRepo().loadCategory( "/" ).addCategory( "foo", "ka" );
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetPrecedingVersion", "descr");
- ruleItem1.checkin( "version0" );
- assertTrue(ruleItem1.getPrecedingVersion() == null);
-
-
-
- ruleItem1.addCategory( "foo" );
- ruleItem1.updateContent( "test content" );
- ruleItem1.checkin( "boo" );
-
-
- AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
- assertNotNull(predecessorRuleItem);
-
-
-
- ruleItem1.updateContent("new content");
- ruleItem1.updateContentURI( "foobar" );
- ruleItem1.checkin( "two changes" );
-
- predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
- assertNotNull(predecessorRuleItem);
- assertEquals(1, predecessorRuleItem.getCategories().size());
- CategoryItem cat = (CategoryItem) predecessorRuleItem.getCategories().get( 0 );
- assertEquals("foo", cat.getName());
-
-
- assertEquals("test content", predecessorRuleItem.getContent());
-
- assertEquals("descr", predecessorRuleItem.getDescription());
-
- assertEquals("default", predecessorRuleItem.getPackageName());
-
-
-
- ruleItem1.updateContent("newer lhs");
- ruleItem1.checkin( "another" );
-
- predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
- assertNotNull(predecessorRuleItem);
- assertEquals("new content", predecessorRuleItem.getContent());
- predecessorRuleItem = (AssetItem) predecessorRuleItem.getPrecedingVersion();
- assertNotNull(predecessorRuleItem);
- assertEquals("test content", predecessorRuleItem.getContent());
-
- }
-
- public void testGetSucceedingVersion() {
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetSucceedingVersion", "test description");
- ruleItem1.checkin( "version0" );
-
- assertEquals("1", ruleItem1.getVersionNumber());
-
- AssetItem succeedingRuleItem = (AssetItem) ruleItem1.getSucceedingVersion();
- assertTrue(succeedingRuleItem == null);
-
- ruleItem1.updateContent("new content");
- ruleItem1.checkin( "la" );
-
- assertEquals("2", ruleItem1.getVersionNumber());
-
- AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
- assertEquals(null, predecessorRuleItem.getContent());
- succeedingRuleItem = (AssetItem) predecessorRuleItem.getSucceedingVersion();
- assertNotNull(succeedingRuleItem);
- assertEquals(ruleItem1.getContent(), succeedingRuleItem.getContent());
- }
-
- public void testGetSuccessorVersionsIterator() {
- try {
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetSuccessorVersionsIterator", "test content");
- ruleItem1.checkin( "version0" );
-
- Iterator iterator = ruleItem1.getSuccessorVersionsIterator();
- assertNotNull(iterator);
- assertFalse(iterator.hasNext());
-
- ruleItem1.updateContent("new content").checkin( "ya" );
-
-
- iterator = ruleItem1.getSuccessorVersionsIterator();
- assertNotNull(iterator);
- assertFalse(iterator.hasNext());
-
- AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
- iterator = predecessorRuleItem.getSuccessorVersionsIterator();
- assertNotNull(iterator);
- assertTrue(iterator.hasNext());
- AssetItem nextRuleItem = (AssetItem) iterator.next();
- assertEquals("new content", nextRuleItem.getContent());
- assertFalse(iterator.hasNext());
-
- ruleItem1.updateContent("newer content");
- ruleItem1.checkin( "boo" );
-
- iterator = predecessorRuleItem.getSuccessorVersionsIterator();
- assertNotNull(iterator);
- assertTrue(iterator.hasNext());
- nextRuleItem = (AssetItem) iterator.next();
- assertEquals("new content", nextRuleItem.getContent());
- assertTrue(iterator.hasNext());
- nextRuleItem = (AssetItem)iterator.next();
- assertEquals("newer content", nextRuleItem.getContent());
- assertFalse(iterator.hasNext());
- }
- catch(Exception e) {
- fail("Caught unexpected exception: " + e);
- }
- }
-
- public void testGetPredecessorVersionsIterator() {
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetPredecessorVersionsIterator", "test description");
- ruleItem1.checkin( "version0" );
-
- Iterator iterator = ruleItem1.getPredecessorVersionsIterator();
- assertNotNull(iterator);
- assertFalse(iterator.hasNext());
-
- ruleItem1.updateContent( "test content" );
- ruleItem1.checkin( "lalalalala" );
-
- iterator = ruleItem1.getPredecessorVersionsIterator();
- assertNotNull(iterator);
- assertTrue(iterator.hasNext());
-
- ruleItem1.updateContent("new content");
- ruleItem1.checkin( "boo" );
-
- iterator = ruleItem1.getPredecessorVersionsIterator();
- assertNotNull(iterator);
- assertTrue(iterator.hasNext());
- AssetItem nextRuleItem = (AssetItem) iterator.next();
-
- assertEquals("test content", nextRuleItem.getContent());
-
- ruleItem1.updateContent("newer content");
- ruleItem1.checkin( "wee" );
-
-
- iterator = ruleItem1.getPredecessorVersionsIterator();
- assertNotNull(iterator);
- assertTrue(iterator.hasNext());
- nextRuleItem = (AssetItem) iterator.next();
- assertTrue(iterator.hasNext());
- assertEquals("new content", nextRuleItem.getContent());
- nextRuleItem = (AssetItem) iterator.next();
-
- assertEquals("test content", nextRuleItem.getContent());
-
- assertEquals(null, ((AssetItem) iterator.next()).getContent());
-
- }
-
- public void testGetTitle() {
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetTitle", "test content");
-
- assertEquals("testGetTitle", ruleItem1.getTitle());
- }
-
- public void testDublinCoreProperties() {
- PackageItem pkg = getRepo().createPackage( "testDublinCore", "wa" );
-
- AssetItem ruleItem = pkg.addAsset( "testDublinCoreProperties", "yeah yeah yeah" );
- ruleItem.updateCoverage( "b" );
- assertEquals("b",ruleItem.getCoverage());
-
- ruleItem.updateLastContributor( "me" );
- ruleItem.checkin( "woo" );
-
- pkg = getRepo().loadPackage( "testDublinCore" );
- ruleItem = (AssetItem) pkg.getAssets().next();
-
- assertEquals("b", ruleItem.getCoverage());
- assertEquals("me", ruleItem.getLastContributor());
-
- assertEquals("", ruleItem.getExternalRelation());
- assertEquals("", ruleItem.getExternalSource());
-
- }
-
- public void testGetFormat() {
- AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetFormat", "test content");
-
- assertEquals("DRL", ruleItem1.getFormat());
-
- ruleItem1.updateFormat( "blah" );
- assertEquals("blah", ruleItem1.getFormat());
- }
-
- public void testAnonymousProperties() {
- AssetItem item = getRepo().loadDefaultPackage().addAsset( "anonymousproperty", "lalalalala" );
- item.updateUserProperty( "fooBar", "value");
- assertEquals("value", item.getUserProperty("fooBar"));
-
-
-
- item.checkin( "lalalala" );
- try {
- item.updateUserProperty( "drools:content", "whee" );
- fail("should not be able to set build in properties this way.");
- }
- catch (IllegalArgumentException e) {
- assertNotNull(e.getMessage());
- }
-
-
- }
-}
Copied: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTest.java (from rev 8378, labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTest.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -0,0 +1,139 @@
+package org.drools.repository;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.drools.repository.RulesRepository;
+import org.drools.repository.CategoryItem;
+
+import junit.framework.TestCase;
+
+public class CategoryItemTest extends TestCase {
+
+
+
+ public void testTagItem() {
+
+ final CategoryItem root = getRepo().loadCategory( "/" );
+
+ root.addCategory( "TestTag", "nothing to see" );
+
+
+ CategoryItem tagItem1 = getRepo().loadCategory("TestTag");
+ assertNotNull(tagItem1);
+ assertEquals("TestTag", tagItem1.getName());
+
+ CategoryItem tagItem2 = getRepo().loadCategory("TestTag");
+ assertNotNull(tagItem2);
+ assertEquals("TestTag", tagItem2.getName());
+ assertEquals(tagItem1, tagItem2);
+
+ List originalCats = getRepo().loadCategory( "/" ).getChildTags(); //listCategoryNames();
+ assertTrue(originalCats.size() > 0);
+
+ CategoryItem rootCat = (CategoryItem) originalCats.get( 0 );
+ assertNotNull(rootCat.getName());
+ assertNotNull(rootCat.getFullPath());
+
+ root.addCategory( "FootestTagItem", "nothing" );
+
+ List cats = root.getChildTags();
+ assertEquals(originalCats.size() + 1, cats.size());
+
+ boolean found = false;
+ for ( Iterator iter = cats.iterator(); iter.hasNext(); ) {
+ CategoryItem element = (CategoryItem) iter.next();
+ if (element.getName().equals( "FootestTagItem" )) {
+ found = true; break;
+ }
+ }
+
+ assertTrue(found);
+
+ }
+
+ public void testCreateCateories() throws Exception {
+ RulesRepository repo = getRepo();
+
+ //load the root
+ CategoryItem root = repo.loadCategory( "/" );
+
+ CategoryItem item = root.addCategory("testCreateCategories", "this is a top level one");
+ assertEquals("testCreateCategories", item.getName());
+ assertEquals("testCreateCategories", item.getFullPath());
+
+ item = repo.loadCategory( "testCreateCategories" );
+ assertEquals("testCreateCategories", item.getName());
+
+
+ }
+
+ public void testGetChildTags() {
+ CategoryItem tagItem1 = getRepo().loadCategory("TestTag");
+ assertNotNull(tagItem1);
+ assertEquals("TestTag", tagItem1.getName());
+
+ List childTags = tagItem1.getChildTags();
+ assertNotNull(childTags);
+ assertEquals(0, childTags.size());
+
+ tagItem1.addCategory( "TestChildTag1", "description" );
+
+ childTags = tagItem1.getChildTags();
+ assertNotNull(childTags);
+ assertEquals(1, childTags.size());
+ assertEquals("TestChildTag1", ((CategoryItem)childTags.get(0)).getName());
+
+ tagItem1.addCategory( "AnotherChild", "ignore me" );
+
+ childTags = tagItem1.getChildTags();
+ assertNotNull(childTags);
+ assertEquals(2, childTags.size());
+ }
+
+ public void testGetChildTag() {
+ CategoryItem root = getRepo().loadCategory( "/" );
+ CategoryItem tagItem1 = root.addCategory("testGetChildTag", "yeah");
+ assertNotNull(tagItem1);
+ assertEquals("testGetChildTag", tagItem1.getName());
+
+ //test that child is added if not already in existence
+ List childTags = tagItem1.getChildTags();
+ assertNotNull(childTags);
+ assertEquals(0, childTags.size());
+
+ CategoryItem childTagItem1 = tagItem1.addCategory("TestChildTag1", "woo");
+ assertNotNull(childTagItem1);
+ assertEquals("TestChildTag1", childTagItem1.getName());
+
+ //test that if already there, it is returned
+ CategoryItem childTagItem2 = getRepo().loadCategory( "testGetChildTag/TestChildTag1");
+ assertNotNull(childTagItem2);
+ assertEquals("TestChildTag1", childTagItem2.getName());
+ assertEquals(childTagItem1, childTagItem2);
+ }
+
+ public void testGetFullPath() {
+
+ CategoryItem root = getRepo().loadCategory( "/" );
+
+ CategoryItem tagItem1 = root.addCategory("testGetFullPath", "foo");
+ assertNotNull(tagItem1);
+ assertEquals("testGetFullPath", tagItem1.getFullPath());
+
+ CategoryItem childTagItem1 = tagItem1.addCategory("TestChildTag1", "foo");
+ assertNotNull(childTagItem1);
+ assertEquals("testGetFullPath/TestChildTag1", childTagItem1.getFullPath());
+
+ CategoryItem childTagItem2 = childTagItem1.addCategory("TestChildTag2", "wee");
+ assertNotNull(childTagItem2);
+ assertEquals("testGetFullPath/TestChildTag1/TestChildTag2", childTagItem2.getFullPath());
+
+
+
+ }
+
+ private RulesRepository getRepo() {
+ return RepositorySessionUtil.getRepository();
+ }
+}
Deleted: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/CategoryItemTestCase.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -1,139 +0,0 @@
-package org.drools.repository;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.drools.repository.RulesRepository;
-import org.drools.repository.CategoryItem;
-
-import junit.framework.TestCase;
-
-public class CategoryItemTestCase extends TestCase {
-
-
-
- public void testTagItem() {
-
- final CategoryItem root = getRepo().loadCategory( "/" );
-
- root.addCategory( "TestTag", "nothing to see" );
-
-
- CategoryItem tagItem1 = getRepo().loadCategory("TestTag");
- assertNotNull(tagItem1);
- assertEquals("TestTag", tagItem1.getName());
-
- CategoryItem tagItem2 = getRepo().loadCategory("TestTag");
- assertNotNull(tagItem2);
- assertEquals("TestTag", tagItem2.getName());
- assertEquals(tagItem1, tagItem2);
-
- List originalCats = getRepo().loadCategory( "/" ).getChildTags(); //listCategoryNames();
- assertTrue(originalCats.size() > 0);
-
- CategoryItem rootCat = (CategoryItem) originalCats.get( 0 );
- assertNotNull(rootCat.getName());
- assertNotNull(rootCat.getFullPath());
-
- root.addCategory( "FootestTagItem", "nothing" );
-
- List cats = root.getChildTags();
- assertEquals(originalCats.size() + 1, cats.size());
-
- boolean found = false;
- for ( Iterator iter = cats.iterator(); iter.hasNext(); ) {
- CategoryItem element = (CategoryItem) iter.next();
- if (element.getName().equals( "FootestTagItem" )) {
- found = true; break;
- }
- }
-
- assertTrue(found);
-
- }
-
- public void testCreateCateories() throws Exception {
- RulesRepository repo = getRepo();
-
- //load the root
- CategoryItem root = repo.loadCategory( "/" );
-
- CategoryItem item = root.addCategory("testCreateCategories", "this is a top level one");
- assertEquals("testCreateCategories", item.getName());
- assertEquals("testCreateCategories", item.getFullPath());
-
- item = repo.loadCategory( "testCreateCategories" );
- assertEquals("testCreateCategories", item.getName());
-
-
- }
-
- public void testGetChildTags() {
- CategoryItem tagItem1 = getRepo().loadCategory("TestTag");
- assertNotNull(tagItem1);
- assertEquals("TestTag", tagItem1.getName());
-
- List childTags = tagItem1.getChildTags();
- assertNotNull(childTags);
- assertEquals(0, childTags.size());
-
- tagItem1.addCategory( "TestChildTag1", "description" );
-
- childTags = tagItem1.getChildTags();
- assertNotNull(childTags);
- assertEquals(1, childTags.size());
- assertEquals("TestChildTag1", ((CategoryItem)childTags.get(0)).getName());
-
- tagItem1.addCategory( "AnotherChild", "ignore me" );
-
- childTags = tagItem1.getChildTags();
- assertNotNull(childTags);
- assertEquals(2, childTags.size());
- }
-
- public void testGetChildTag() {
- CategoryItem root = getRepo().loadCategory( "/" );
- CategoryItem tagItem1 = root.addCategory("testGetChildTag", "yeah");
- assertNotNull(tagItem1);
- assertEquals("testGetChildTag", tagItem1.getName());
-
- //test that child is added if not already in existence
- List childTags = tagItem1.getChildTags();
- assertNotNull(childTags);
- assertEquals(0, childTags.size());
-
- CategoryItem childTagItem1 = tagItem1.addCategory("TestChildTag1", "woo");
- assertNotNull(childTagItem1);
- assertEquals("TestChildTag1", childTagItem1.getName());
-
- //test that if already there, it is returned
- CategoryItem childTagItem2 = getRepo().loadCategory( "testGetChildTag/TestChildTag1");
- assertNotNull(childTagItem2);
- assertEquals("TestChildTag1", childTagItem2.getName());
- assertEquals(childTagItem1, childTagItem2);
- }
-
- public void testGetFullPath() {
-
- CategoryItem root = getRepo().loadCategory( "/" );
-
- CategoryItem tagItem1 = root.addCategory("testGetFullPath", "foo");
- assertNotNull(tagItem1);
- assertEquals("testGetFullPath", tagItem1.getFullPath());
-
- CategoryItem childTagItem1 = tagItem1.addCategory("TestChildTag1", "foo");
- assertNotNull(childTagItem1);
- assertEquals("testGetFullPath/TestChildTag1", childTagItem1.getFullPath());
-
- CategoryItem childTagItem2 = childTagItem1.addCategory("TestChildTag2", "wee");
- assertNotNull(childTagItem2);
- assertEquals("testGetFullPath/TestChildTag1/TestChildTag2", childTagItem2.getFullPath());
-
-
-
- }
-
- private RulesRepository getRepo() {
- return RepositorySession.getRepository();
- }
-}
Copied: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java (from rev 8378, labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -0,0 +1,439 @@
+package org.drools.repository;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public class PackageItemTest extends TestCase {
+
+ public void testListPackages() throws Exception {
+ RulesRepository repo = getRepo();
+ repo.createPackage( "testListPackages1", "lalalala" );
+
+ List list = iteratorToList( repo.listPackages() );
+ int prevSize = list.size();
+ repo.createPackage( "testListPackages2", "abc" );
+
+ list = iteratorToList( repo.listPackages() );
+
+ assertEquals(prevSize + 1, list.size());
+ }
+
+ public void testRulePackageItem() throws Exception {
+ RulesRepository repo = getRepo();
+
+ //calls constructor
+ PackageItem rulePackageItem1 = repo.createPackage("testRulePackage", "desc");
+ assertNotNull(rulePackageItem1);
+ assertEquals("testRulePackage", rulePackageItem1.getName());
+
+ Iterator it = getRepo().listPackages();
+ assertTrue(it.hasNext());
+
+ while (it.hasNext()) {
+ PackageItem pack = (PackageItem) it.next();
+ if (pack.getName().equals( "testRulePackage" )) {
+ return;
+ }
+ }
+ fail("should have picked up the testRulePackage but didnt.");
+
+
+ }
+
+ /**
+ * This tests creating a "baseline" of a RulePackage,
+ * basically updating all the resources, and checking it in as a version.
+ * This is showing off "multi dimensional versioning".
+ */
+ public void testBaselinePackage() throws Exception {
+ RulesRepository repo = getRepo();
+
+ PackageItem pack = repo.createPackage( "testBaselinePackage", "for testing baselines" );
+
+ AssetItem rule1 = pack.addAsset( "rule 1", "yeah" );
+ AssetItem rule2 = pack.addAsset( "rule 2", "foobar" );
+
+ assertEquals(StateItem.DRAFT_STATE_NAME, rule1.getState().getName());
+
+ StateItem state = repo.getState( "deployed" );
+
+ repo.save();
+
+ assertNull(pack.getPrecedingVersion());
+
+ //the first version, frozen with 2 rules
+ pack.createBaseline("commit comment", state);
+
+ //check head
+ pack = repo.loadPackage( "testBaselinePackage" );
+ assertEquals(2, iteratorToList(pack.getAssets()).size());
+
+ //now remove a rule from head
+ pack.removeAsset( "rule 1" );
+ repo.save();
+ assertEquals(1, iteratorToList( pack.getAssets() ).size());
+
+ pack.createBaseline( "another", state );
+
+ PackageItem prev = (PackageItem) pack.getPrecedingVersion();
+ assertEquals(2, iteratorToList( prev.getAssets() ).size());
+
+ assertNotNull(prev.getSucceedingVersion());
+
+ PackageItem succ = (PackageItem) prev.getSucceedingVersion();
+
+ assertEquals(1, iteratorToList( succ.getAssets() ).size());
+
+ }
+
+ /** Continues to show how multi dimensional versioning works */
+ public void testPackageBaselineWithRuleChanges() throws Exception {
+ String packName = StackUtil.getCurrentMethodName();
+ PackageItem pack = getRepo().createPackage( packName, "yeah" );
+
+ AssetItem rule = pack.addAsset( "foobar", "waah" );
+ rule.updateContent( "this is something" );
+ rule.checkin( "something" );
+
+ StateItem state = getRepo().getState( "something" );
+
+ pack.createBaseline( "another one", state );
+
+ pack = getRepo().loadPackage( packName );
+
+ rule = (AssetItem) pack.getAssets().next();
+ rule.updateContent( "blah" );
+ rule.checkin( "woot" );
+
+ pack.createBaseline( "yeah", state );
+
+ pack = getRepo().loadPackage( packName );
+ rule = (AssetItem) pack.getAssets().next();
+ assertEquals("blah", rule.getContent());
+
+ PackageItem prev = (PackageItem) pack.getPrecedingVersion();
+ rule = (AssetItem) prev.getAssets().next();
+ assertEquals("this is something", rule.getContent());
+
+ }
+
+ private RulesRepository getRepo() {
+ return RepositorySessionUtil.getRepository();
+ }
+
+ public void testLoadRulePackageItem() {
+
+ PackageItem rulePackageItem = getRepo().createPackage("testLoadRuleRuleItem", "desc");
+
+ rulePackageItem = getRepo().loadPackage("testLoadRuleRuleItem");
+ assertNotNull(rulePackageItem);
+ assertEquals("testLoadRuleRuleItem", rulePackageItem.getName());
+
+ assertEquals("desc", rulePackageItem.getDescription());
+ // try loading rule package that was not created
+ try {
+ rulePackageItem = getRepo().loadPackage("anotherRuleRuleItem");
+ fail("Exception not thrown loading rule package that was not created.");
+ } catch (RulesRepositoryException e) {
+ // that is OK!
+ assertNotNull(e.getMessage());
+ }
+ }
+
+ /**
+ * This will test getting rules of specific versions out of a package.
+ */
+ public void testPackageRuleVersionExtraction() throws Exception {
+ PackageItem pack = getRepo().createPackage( "package extractor", "foo" );
+
+ AssetItem rule1 = pack.addAsset( "rule number 1", "yeah man" );
+ rule1.checkin( "version0" );
+
+ AssetItem rule2 = pack.addAsset( "rule number 2", "no way" );
+ rule2.checkin( "version0" );
+
+ AssetItem rule3 = pack.addAsset( "rule number 3", "yes way" );
+ rule3.checkin( "version0" );
+
+ getRepo().save();
+
+ pack = getRepo().loadPackage( "package extractor" );
+ List rules = iteratorToList( pack.getAssets() );
+ assertEquals(3, rules.size());
+
+ StateItem state = getRepo().getState( "foobar" );
+
+ rule1.updateState( "foobar" );
+ rule1.checkin( "yeah" );
+
+ pack = getRepo().loadPackage( "package extractor" );
+
+ rules = iteratorToList( pack.getAssetsWithStatus(state) );
+
+ assertEquals(1, rules.size());
+
+ //now lets try an invalid state tag
+ rules = iteratorToList( pack.getAssetsWithStatus( getRepo().getState( "whee" ) ) );
+ assertEquals(0, rules.size());
+
+ //and Draft, as we start with Draft, should be able to get all three back
+ //although an older version of one of them
+ rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( StateItem.DRAFT_STATE_NAME )) );
+ assertEquals(3, rules.size());
+
+ //now do an update, and pull it out via state
+ rule1.updateContent( "new content" );
+ rule1.updateState( "draft" );
+ rule1.checkin( "latest" );
+
+ rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( "draft" )) );
+ assertEquals(1, rules.size());
+ AssetItem rule = (AssetItem) rules.get( 0 );
+ assertEquals("new content", rule.getContent());
+
+ //get the previous one via state
+
+ rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( "foobar" )) );
+ assertEquals(1, rules.size());
+ AssetItem prior = (AssetItem) rules.get( 0 );
+
+ assertFalse("new content".equals( prior.getContent() ));
+
+ }
+
+ public void testIgnoreState() throws Exception {
+ PackageItem pack = getRepo().createPackage( "package testIgnoreState", "foo" );
+
+
+ AssetItem rule1 = pack.addAsset( "rule number 1", "yeah man" );
+ rule1.updateState( "x" );
+ rule1.checkin( "version0" );
+
+
+ AssetItem rule2 = pack.addAsset( "rule number 2", "no way" );
+ rule2.updateState( "x" );
+ rule2.checkin( "version0" );
+
+ AssetItem rule3 = pack.addAsset( "rule number 3", "yes way" );
+ rule3.updateState( "disabled" );
+ rule3.checkin( "version0" );
+
+ getRepo().save();
+
+
+ Iterator result = pack.getAssetsWithStatus( getRepo().getState( "x" ), getRepo().getState( "disabled" ) );
+ List l = iteratorToList( result );
+ assertEquals(2, l.size());
+ }
+
+ public void testDuplicatePackageName() throws Exception {
+ PackageItem pack = getRepo().createPackage( "dupePackageTest", "testing for dupe" );
+ assertNotNull(pack.getName());
+
+ try {
+ getRepo().createPackage( "dupePackageTest", "this should fail" );
+ fail("Should not be able to add a package of the same name.");
+ } catch (RulesRepositoryException e) {
+ assertNotNull(e.getMessage());
+ }
+
+ }
+
+ public void testPackageInstanceWrongNodeType() throws Exception {
+ PackageItem pack = getRepo().loadDefaultPackage();
+ AssetItem rule = pack.addAsset( "packageInstanceWrongNodeType", "" );
+
+ try {
+ new PackageItem(this.getRepo(), rule.getNode());
+ fail("Can't create a package from a rule node.");
+ } catch (RulesRepositoryException e) {
+ assertNotNull(e.getMessage());
+ }
+
+ }
+
+
+ public void testLoadRulePackageItemByUUID() throws Exception {
+
+ PackageItem rulePackageItem = getRepo().createPackage("testLoadRuleRuleItemByUUID", "desc");
+
+ String uuid = null;
+ uuid = rulePackageItem.getNode().getUUID();
+
+
+ rulePackageItem = getRepo().loadPackageByUUID(uuid);
+ assertNotNull(rulePackageItem);
+ assertEquals("testLoadRuleRuleItemByUUID", rulePackageItem.getName());
+
+ // try loading rule package that was not created
+ try {
+ rulePackageItem = getRepo().loadPackageByUUID("01010101-0101-0101-0101-010101010101");
+ fail("Exception not thrown loading rule package that was not created.");
+ } catch (RulesRepositoryException e) {
+ // that is OK!
+ assertNotNull(e.getMessage());
+ }
+ }
+
+ public void testAddRuleRuleItem() {
+ PackageItem rulePackageItem1 = getRepo().createPackage("testAddRuleRuleItem","desc");
+
+
+ AssetItem ruleItem1 = rulePackageItem1.addAsset("testAddRuleRuleItem", "test description");
+ ruleItem1.updateContent( "test content" );
+ ruleItem1.checkin( "updated the rule content" );
+
+ Iterator rulesIt = rulePackageItem1.getAssets();
+ assertNotNull(rulesIt);
+ AssetItem first = (AssetItem) rulesIt.next();
+ assertFalse(rulesIt.hasNext());
+ assertEquals("testAddRuleRuleItem", first.getName());
+
+ //test that it is following the head revision
+ ruleItem1.updateContent("new lhs");
+ ruleItem1.checkin( "updated again" );
+ rulesIt = rulePackageItem1.getAssets();
+ assertNotNull(rulesIt);
+
+ List rules = iteratorToList( rulesIt );
+ assertEquals(1, rules.size());
+ assertEquals("testAddRuleRuleItem", ((AssetItem)rules.get(0)).getName());
+ assertEquals("new lhs", ((AssetItem)rules.get(0)).getContent());
+
+ AssetItem ruleItem2 = rulePackageItem1.addAsset("testAddRuleRuleItem2", "test content");
+
+ rules = iteratorToList(rulePackageItem1.getAssets());
+ assertNotNull(rules);
+ assertEquals(2, rules.size());
+
+ }
+
+
+ List iteratorToList(Iterator it) {
+ List list = new ArrayList();
+ while(it.hasNext()) {
+ list.add( it.next() );
+ }
+ return list;
+ }
+
+
+
+
+
+
+
+ public void testGetRules() {
+ PackageItem rulePackageItem1 = getRepo().createPackage("testGetRules", "desc");
+
+ AssetItem ruleItem1 = rulePackageItem1.addAsset("testGetRules", "desc" );
+ ruleItem1.updateContent( "test lhs content" );
+
+
+ List rules = iteratorToList(rulePackageItem1.getAssets());
+ assertNotNull(rules);
+ assertEquals(1, rules.size());
+ assertEquals("testGetRules", ((AssetItem)rules.get(0)).getName());
+
+ AssetItem ruleItem2 = rulePackageItem1.addAsset("testGetRules2", "desc" );
+ ruleItem2.updateContent( "test lhs content" );
+
+ rules = iteratorToList(rulePackageItem1.getAssets());
+ assertNotNull(rules);
+ assertEquals(2, rules.size());
+
+ //now lets test loading rule
+ AssetItem loaded = rulePackageItem1.loadAsset( "testGetRules" );
+ assertNotNull(loaded);
+ assertEquals("testGetRules", loaded.getName());
+ assertEquals("desc", loaded.getDescription());
+
+
+ }
+
+ public void testToString() {
+ PackageItem rulePackageItem1 = getRepo().createPackage("testToStringPackage", "desc");
+
+ AssetItem ruleItem1 = rulePackageItem1.addAsset("testToStringPackage", "test lhs content" );
+ ruleItem1.updateContent( "test lhs content" );
+
+ assertNotNull(rulePackageItem1.toString());
+
+ }
+
+ public void testRemoveRule() {
+ PackageItem rulePackageItem1 = getRepo().createPackage("testRemoveRule", "desc");
+
+ AssetItem ruleItem1 = rulePackageItem1.addAsset("testRemoveRule", "test lhs content" );
+ ruleItem1.updateContent( "test lhs content" );
+
+
+
+ Iterator rulesIt = rulePackageItem1.getAssets();
+ AssetItem next = (AssetItem) rulesIt.next();
+
+ assertFalse(rulesIt.hasNext());
+ assertEquals("testRemoveRule", next.getName());
+
+
+
+ ruleItem1.updateContent("new lhs");
+ List rules = iteratorToList(rulePackageItem1.getAssets());
+ assertNotNull(rules);
+ assertEquals(1, rules.size());
+ assertEquals("testRemoveRule", ((AssetItem)rules.get(0)).getName());
+ assertEquals("new lhs", ((AssetItem)rules.get(0)).getContent());
+
+ AssetItem ruleItem2 = rulePackageItem1.addAsset("testRemoveRule2", "test lhs content");
+
+ //remove the rule, make sure the other rule in the pacakge stays around
+ rulePackageItem1.removeAsset(ruleItem1.getName());
+ rulePackageItem1.rulesRepository.save();
+ rules = iteratorToList(rulePackageItem1.getAssets());
+ assertEquals(1, rules.size());
+ assertEquals("testRemoveRule2", ((AssetItem)rules.get(0)).getName());
+
+ //remove the rule that is following the head revision, make sure the pacakge is now empty
+ rulePackageItem1.removeAsset(ruleItem2.getName());
+ rules = iteratorToList(rulePackageItem1.getAssets());
+ assertNotNull(rules);
+ assertEquals(0, rules.size());
+
+ }
+
+ public void testSearchByFormat() throws Exception {
+ PackageItem pkg = getRepo().createPackage( "searchByFormat", "" );
+ getRepo().save();
+
+
+ AssetItem item = pkg.addAsset( "searchByFormatAsset1", "" );
+ item.updateFormat( "xyz" );
+ item.checkin( "la" );
+
+ item = pkg.addAsset( "searchByFormatAsset2", "wee" );
+ item.updateFormat( "xyz" );
+ item.checkin( "la" );
+
+ item = pkg.addAsset( "searchByFormatAsset3", "wee" );
+ item.updateFormat( "ABC" );
+ item.checkin( "la" );
+
+ AssetItemIterator it = pkg.queryAssets( "drools:format='xyz'" );
+ List list = iteratorToList( it );
+ assertEquals(2, list.size());
+
+
+ }
+
+
+
+ public void testGetFormat() {
+ PackageItem rulePackageItem1 = getRepo().createPackage("testGetFormat", "woot");
+ assertNotNull(rulePackageItem1);
+ assertEquals("Rule Package", rulePackageItem1.getFormat());
+
+ }
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTestCase.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -1,425 +0,0 @@
-package org.drools.repository;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-public class PackageItemTestCase extends TestCase {
-
- public void testListPackages() throws Exception {
- RulesRepository repo = getRepo();
- repo.createPackage( "testListPackages1", "lalalala" );
-
- List list = iteratorToList( repo.listPackages() );
- int prevSize = list.size();
- repo.createPackage( "testListPackages2", "abc" );
-
- list = iteratorToList( repo.listPackages() );
-
- assertEquals(prevSize + 1, list.size());
- }
-
- public void testRulePackageItem() throws Exception {
- RulesRepository repo = getRepo();
- try {
-
- //calls constructor
- PackageItem rulePackageItem1 = repo.createPackage("testRulePackage", "desc");
- assertNotNull(rulePackageItem1);
- assertEquals("testRulePackage", rulePackageItem1.getName());
-
- Iterator it = getRepo().listPackages();
- assertTrue(it.hasNext());
-
- while (it.hasNext()) {
- PackageItem pack = (PackageItem) it.next();
- if (pack.getName().equals( "testRulePackage" )) {
- return;
- }
- }
- fail("should have picked up the testRulePackage but didnt.");
- }
- catch(Exception e) {
- e.printStackTrace();
- fail("Caught unexpected exception: " + e);
- }
-
- }
-
- /**
- * This tests creating a "baseline" of a RulePackage,
- * basically updating all the resources, and checking it in as a version.
- * This is showing off "multi dimensional versioning".
- */
- public void testBaselinePackage() throws Exception {
- RulesRepository repo = getRepo();
-
- PackageItem pack = repo.createPackage( "testBaselinePackage", "for testing baselines" );
-
- AssetItem rule1 = pack.addAsset( "rule 1", "yeah" );
- AssetItem rule2 = pack.addAsset( "rule 2", "foobar" );
-
- assertEquals(StateItem.DRAFT_STATE_NAME, rule1.getState().getName());
-
- StateItem state = repo.getState( "deployed" );
-
- repo.save();
-
- assertNull(pack.getPrecedingVersion());
-
- //the first version, frozen with 2 rules
- pack.createBaseline("commit comment", state);
-
- //check head
- pack = repo.loadPackage( "testBaselinePackage" );
- assertEquals(2, iteratorToList(pack.getAssets()).size());
-
- //now remove a rule from head
- pack.removeAsset( "rule 1" );
- repo.save();
- assertEquals(1, iteratorToList( pack.getAssets() ).size());
-
- pack.createBaseline( "another", state );
-
- PackageItem prev = (PackageItem) pack.getPrecedingVersion();
- assertEquals(2, iteratorToList( prev.getAssets() ).size());
-
- }
-
- /** Continues to show how multi dimensional versioning works */
- public void testPackageBaselineWithRuleChanges() throws Exception {
- String packName = StackUtil.getCurrentMethodName();
- PackageItem pack = getRepo().createPackage( packName, "yeah" );
-
- AssetItem rule = pack.addAsset( "foobar", "waah" );
- rule.updateContent( "this is something" );
- rule.checkin( "something" );
-
- StateItem state = getRepo().getState( "something" );
-
- pack.createBaseline( "another one", state );
-
- pack = getRepo().loadPackage( packName );
-
- rule = (AssetItem) pack.getAssets().next();
- rule.updateContent( "blah" );
- rule.checkin( "woot" );
-
- pack.createBaseline( "yeah", state );
-
- pack = getRepo().loadPackage( packName );
- rule = (AssetItem) pack.getAssets().next();
- assertEquals("blah", rule.getContent());
-
- PackageItem prev = (PackageItem) pack.getPrecedingVersion();
- rule = (AssetItem) prev.getAssets().next();
- assertEquals("this is something", rule.getContent());
-
- }
-
- private RulesRepository getRepo() {
- return RepositorySession.getRepository();
- }
-
- public void testLoadRulePackageItem() {
-
- PackageItem rulePackageItem = getRepo().createPackage("testLoadRuleRuleItem", "desc");
-
- rulePackageItem = getRepo().loadPackage("testLoadRuleRuleItem");
- assertNotNull(rulePackageItem);
- assertEquals("testLoadRuleRuleItem", rulePackageItem.getName());
-
- assertEquals("desc", rulePackageItem.getDescription());
- // try loading rule package that was not created
- try {
- rulePackageItem = getRepo().loadPackage("anotherRuleRuleItem");
- fail("Exception not thrown loading rule package that was not created.");
- } catch (RulesRepositoryException e) {
- // that is OK!
- assertNotNull(e.getMessage());
- }
- }
-
- /**
- * This will test getting rules of specific versions out of a package.
- */
- public void testPackageRuleVersionExtraction() throws Exception {
- PackageItem pack = getRepo().createPackage( "package extractor", "foo" );
-
-
- AssetItem rule1 = pack.addAsset( "rule number 1", "yeah man" );
- rule1.checkin( "version0" );
-
- AssetItem rule2 = pack.addAsset( "rule number 2", "no way" );
- rule2.checkin( "version0" );
-
- AssetItem rule3 = pack.addAsset( "rule number 3", "yes way" );
- rule3.checkin( "version0" );
-
- getRepo().save();
-
- pack = getRepo().loadPackage( "package extractor" );
- List rules = iteratorToList( pack.getAssets() );
- assertEquals(3, rules.size());
-
- StateItem state = getRepo().getState( "foobar" );
-
- rule1.updateState( "foobar" );
- rule1.checkin( "yeah" );
-
- pack = getRepo().loadPackage( "package extractor" );
-
- rules = iteratorToList( pack.getAssetsWithStatus(state) );
-
- assertEquals(1, rules.size());
-
- //now lets try an invalid state tag
- rules = iteratorToList( pack.getAssetsWithStatus( getRepo().getState( "whee" ) ) );
- assertEquals(0, rules.size());
-
- //and null, as we start with null, should be able to get all three back
- //although an older version of one of them
- rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( StateItem.DRAFT_STATE_NAME )) );
- assertEquals(3, rules.size());
-
- //now do an update, and pull it out via state
- rule1.updateContent( "new content" );
- rule1.updateState( "draft" );
- rule1.checkin( "latest" );
-
- rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( "draft" )) );
- assertEquals(1, rules.size());
- AssetItem rule = (AssetItem) rules.get( 0 );
- assertEquals("new content", rule.getContent());
-
- //get the previous one via state
-
- rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( "foobar" )) );
- assertEquals(1, rules.size());
- AssetItem prior = (AssetItem) rules.get( 0 );
-
- assertFalse("new content".equals( prior.getContent() ));
-
- }
-
- public void testIgnoreState() throws Exception {
- PackageItem pack = getRepo().createPackage( "package testIgnoreState", "foo" );
-
-
- AssetItem rule1 = pack.addAsset( "rule number 1", "yeah man" );
- rule1.updateState( "x" );
- rule1.checkin( "version0" );
-
-
- AssetItem rule2 = pack.addAsset( "rule number 2", "no way" );
- rule2.updateState( "x" );
- rule2.checkin( "version0" );
-
- AssetItem rule3 = pack.addAsset( "rule number 3", "yes way" );
- rule3.updateState( "disabled" );
- rule3.checkin( "version0" );
-
- getRepo().save();
-
-
- Iterator result = pack.getAssetsWithStatus( getRepo().getState( "x" ), getRepo().getState( "disabled" ) );
- List l = iteratorToList( result );
- assertEquals(2, l.size());
- }
-
- public void testDuplicatePackageName() throws Exception {
- PackageItem pack = getRepo().createPackage( "dupePackageTest", "testing for dupe" );
- assertNotNull(pack.getName());
-
- try {
- getRepo().createPackage( "dupePackageTest", "this should fail" );
- fail("Should not be able to add a package of the same name.");
- } catch (RulesRepositoryException e) {
- assertNotNull(e.getMessage());
- }
-
- }
-
- public void testLoadRulePackageItemByUUID() throws Exception {
-
- PackageItem rulePackageItem = getRepo().createPackage("testLoadRuleRuleItemByUUID", "desc");
-
- String uuid = null;
- uuid = rulePackageItem.getNode().getUUID();
-
-
- rulePackageItem = getRepo().loadPackageByUUID(uuid);
- assertNotNull(rulePackageItem);
- assertEquals("testLoadRuleRuleItemByUUID", rulePackageItem.getName());
-
- // try loading rule package that was not created
- try {
- rulePackageItem = getRepo().loadPackageByUUID("01010101-0101-0101-0101-010101010101");
- fail("Exception not thrown loading rule package that was not created.");
- } catch (RulesRepositoryException e) {
- // that is OK!
- assertNotNull(e.getMessage());
- }
- }
-
- public void testAddRuleRuleItem() {
- PackageItem rulePackageItem1 = getRepo().createPackage("testAddRuleRuleItem","desc");
-
-
- AssetItem ruleItem1 = rulePackageItem1.addAsset("testAddRuleRuleItem", "test description");
- ruleItem1.updateContent( "test content" );
- ruleItem1.checkin( "updated the rule content" );
-
- Iterator rulesIt = rulePackageItem1.getAssets();
- assertNotNull(rulesIt);
- AssetItem first = (AssetItem) rulesIt.next();
- assertFalse(rulesIt.hasNext());
- assertEquals("testAddRuleRuleItem", first.getName());
-
- //test that it is following the head revision
- ruleItem1.updateContent("new lhs");
- ruleItem1.checkin( "updated again" );
- rulesIt = rulePackageItem1.getAssets();
- assertNotNull(rulesIt);
-
- List rules = iteratorToList( rulesIt );
- assertEquals(1, rules.size());
- assertEquals("testAddRuleRuleItem", ((AssetItem)rules.get(0)).getName());
- assertEquals("new lhs", ((AssetItem)rules.get(0)).getContent());
-
- AssetItem ruleItem2 = rulePackageItem1.addAsset("testAddRuleRuleItem2", "test content");
-
- rules = iteratorToList(rulePackageItem1.getAssets());
- assertNotNull(rules);
- assertEquals(2, rules.size());
-
- }
-
-
- List iteratorToList(Iterator it) {
- List list = new ArrayList();
- while(it.hasNext()) {
- list.add( it.next() );
- }
- return list;
- }
-
-
-
-
-
-
-
- public void testGetRules() {
- PackageItem rulePackageItem1 = getRepo().createPackage("testGetRules", "desc");
-
- AssetItem ruleItem1 = rulePackageItem1.addAsset("testGetRules", "desc" );
- ruleItem1.updateContent( "test lhs content" );
-
-
- List rules = iteratorToList(rulePackageItem1.getAssets());
- assertNotNull(rules);
- assertEquals(1, rules.size());
- assertEquals("testGetRules", ((AssetItem)rules.get(0)).getName());
-
- AssetItem ruleItem2 = rulePackageItem1.addAsset("testGetRules2", "desc" );
- ruleItem2.updateContent( "test lhs content" );
-
- rules = iteratorToList(rulePackageItem1.getAssets());
- assertNotNull(rules);
- assertEquals(2, rules.size());
-
- //now lets test loading rule
- AssetItem loaded = rulePackageItem1.loadAsset( "testGetRules" );
- assertNotNull(loaded);
- assertEquals("testGetRules", loaded.getName());
- assertEquals("desc", loaded.getDescription());
-
-
- }
-
- public void testToString() {
- PackageItem rulePackageItem1 = getRepo().createPackage("testToStringPackage", "desc");
-
- AssetItem ruleItem1 = rulePackageItem1.addAsset("testToStringPackage", "test lhs content" );
- ruleItem1.updateContent( "test lhs content" );
-
- assertNotNull(rulePackageItem1.toString());
-
- }
-
- public void testRemoveRule() {
- PackageItem rulePackageItem1 = getRepo().createPackage("testRemoveRule", "desc");
-
- AssetItem ruleItem1 = rulePackageItem1.addAsset("testRemoveRule", "test lhs content" );
- ruleItem1.updateContent( "test lhs content" );
-
-
-
- Iterator rulesIt = rulePackageItem1.getAssets();
- AssetItem next = (AssetItem) rulesIt.next();
-
- assertFalse(rulesIt.hasNext());
- assertEquals("testRemoveRule", next.getName());
-
-
-
- ruleItem1.updateContent("new lhs");
- List rules = iteratorToList(rulePackageItem1.getAssets());
- assertNotNull(rules);
- assertEquals(1, rules.size());
- assertEquals("testRemoveRule", ((AssetItem)rules.get(0)).getName());
- assertEquals("new lhs", ((AssetItem)rules.get(0)).getContent());
-
- AssetItem ruleItem2 = rulePackageItem1.addAsset("testRemoveRule2", "test lhs content");
-
- //remove the rule, make sure the other rule in the pacakge stays around
- rulePackageItem1.removeAsset(ruleItem1.getName());
- rulePackageItem1.rulesRepository.save();
- rules = iteratorToList(rulePackageItem1.getAssets());
- assertEquals(1, rules.size());
- assertEquals("testRemoveRule2", ((AssetItem)rules.get(0)).getName());
-
- //remove the rule that is following the head revision, make sure the pacakge is now empty
- rulePackageItem1.removeAsset(ruleItem2.getName());
- rules = iteratorToList(rulePackageItem1.getAssets());
- assertNotNull(rules);
- assertEquals(0, rules.size());
-
- }
-
- public void testSearchByFormat() throws Exception {
- PackageItem pkg = getRepo().createPackage( "searchByFormat", "" );
- getRepo().save();
-
-
- AssetItem item = pkg.addAsset( "searchByFormatAsset1", "" );
- item.updateFormat( "xyz" );
- item.checkin( "la" );
-
- item = pkg.addAsset( "searchByFormatAsset2", "wee" );
- item.updateFormat( "xyz" );
- item.checkin( "la" );
-
- item = pkg.addAsset( "searchByFormatAsset3", "wee" );
- item.updateFormat( "ABC" );
- item.checkin( "la" );
-
- AssetItemIterator it = pkg.queryAssets( "drools:format='xyz'" );
- List list = iteratorToList( it );
- assertEquals(2, list.size());
-
-
- }
-
-
-
- public void testGetFormat() {
- PackageItem rulePackageItem1 = getRepo().createPackage("testGetFormat", "woot");
- assertNotNull(rulePackageItem1);
- assertEquals("Rule Package", rulePackageItem1.getFormat());
-
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySession.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySession.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySession.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -1,44 +0,0 @@
-package org.drools.repository;
-
-import javax.jcr.LoginException;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import junit.framework.Assert;
-
-public class RepositorySession {
-
- private static ThreadLocal repo = new ThreadLocal();
-
- public static RulesRepository getRepository() {
- Object repoInstance = repo.get();
- if ( repoInstance == null ) {
- RepositoryConfigurator config = new RepositoryConfigurator();
-
- //create a repo instance (startup)
- Repository repository = config.createRepository();
-
- //create a session
- Session session;
- try {
- session = config.login( repository );
- //clear out and setup
- config.clearRulesRepository( session );
- config.setupRulesRepository( session );
-
-
- repoInstance = new RulesRepository( session );
-
- repo.set( repoInstance );
- } catch ( Exception e) {
- Assert.fail("Unable to initialise repository :" + e.getMessage());
- }
-
-
-
- }
- return (RulesRepository) repoInstance;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySessionUtil.java (from rev 8378, labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySession.java)
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySession.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySessionUtil.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -0,0 +1,47 @@
+package org.drools.repository;
+
+import javax.jcr.Repository;
+import javax.jcr.Session;
+
+import junit.framework.Assert;
+
+/**
+ * This is a utility to simulate session behavior for the test suite.
+ * @author Michael Neale
+ *
+ */
+public class RepositorySessionUtil {
+
+ private static ThreadLocal repo = new ThreadLocal();
+
+ public static RulesRepository getRepository() {
+ Object repoInstance = repo.get();
+ if ( repoInstance == null ) {
+ RepositoryConfigurator config = new RepositoryConfigurator();
+
+ //create a repo instance (startup)
+ Repository repository = config.createRepository();
+
+ //create a session
+ Session session;
+ try {
+ session = config.login( repository );
+ //clear out and setup
+ config.clearRulesRepository( session );
+ config.setupRulesRepository( session );
+
+
+ repoInstance = new RulesRepository( session );
+
+ repo.set( repoInstance );
+ } catch ( Exception e) {
+ Assert.fail("Unable to initialise repository :" + e.getMessage());
+ }
+
+
+
+ }
+ return (RulesRepository) repoInstance;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java (from rev 8378, labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -0,0 +1,233 @@
+package org.drools.repository;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public class RulesRepositoryTest extends TestCase {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testDefaultPackage() throws Exception {
+ RulesRepository repo = RepositorySessionUtil.getRepository();
+
+ Iterator it = repo.listPackages();
+ boolean foundDefault = false;
+ while(it.hasNext()) {
+ PackageItem item = (PackageItem) it.next();
+ if (item.getName().equals( RulesRepository.DEFAULT_PACKAGE )) {
+ foundDefault = true;
+ }
+ }
+ assertTrue(foundDefault);
+
+ PackageItem def = repo.loadDefaultPackage();
+ assertNotNull(def);
+ assertEquals("default", def.getName());
+
+
+ }
+
+ public void testAddVersionARule() throws Exception {
+ RulesRepository repo = RepositorySessionUtil.getRepository();
+ PackageItem pack = repo.createPackage( "testAddVersionARule", "description" );
+ repo.save();
+
+ AssetItem rule = pack.addAsset( "my rule", "foobar" );
+ assertEquals("my rule", rule.getName());
+
+ rule.updateContent( "foo foo" );
+ rule.checkin( "version0" );
+
+ pack.addAsset( "other rule", "description" );
+
+ rule.updateContent( "foo bar" );
+ rule.checkin( "version1" );
+
+ PackageItem pack2 = repo.loadPackage( "testAddVersionARule" );
+
+ Iterator it = pack2.getAssets();
+
+ it.next();
+ it.next();
+
+ assertFalse(it.hasNext());
+
+ AssetItem prev = (AssetItem) rule.getPrecedingVersion();
+
+ assertEquals("foo bar", rule.getContent());
+ assertEquals("foo foo", prev.getContent());
+
+
+
+ }
+
+
+ public void testLoadRuleByUUID() throws Exception {
+ RulesRepository repo = RepositorySessionUtil.getRepository();
+
+ PackageItem rulePackageItem = repo.loadDefaultPackage();
+ AssetItem rule = rulePackageItem.addAsset( "testLoadRuleByUUID", "this is a description");
+
+ repo.save();
+
+ String uuid = rule.getNode().getUUID();
+
+ AssetItem loaded = repo.loadAssetByUUID(uuid);
+ assertNotNull(loaded);
+ assertEquals("testLoadRuleByUUID", loaded.getName());
+ assertEquals( "this is a description", loaded.getDescription());
+
+ String oldVersionNumber = loaded.getVersionNumber();
+
+ loaded.updateContent( "xxx" );
+ loaded.checkin( "woo" );
+
+
+
+
+ AssetItem reload = repo.loadAssetByUUID( uuid );
+ assertEquals("testLoadRuleByUUID", reload.getName());
+ assertEquals("xxx", reload.getContent());
+ System.out.println(reload.getVersionNumber());
+ System.out.println(loaded.getVersionNumber());
+ assertFalse(reload.getVersionNumber().equals( oldVersionNumber ));
+
+
+ // try loading rule package that was not created
+ try {
+ repo.loadAssetByUUID("01010101-0101-0101-0101-010101010101");
+ fail("Exception not thrown loading rule package that was not created.");
+ } catch (RulesRepositoryException e) {
+ // that is OK!
+ assertNotNull(e.getMessage());
+ }
+ }
+
+ public void testAddRuleCalendarWithDates() {
+ RulesRepository rulesRepository = RepositorySessionUtil.getRepository();
+
+
+ Calendar effectiveDate = Calendar.getInstance();
+ Calendar expiredDate = Calendar.getInstance();
+ expiredDate.setTimeInMillis(effectiveDate.getTimeInMillis() + (1000 * 60 * 60 * 24));
+ AssetItem ruleItem1 = rulesRepository.loadDefaultPackage().addAsset("testAddRuleCalendarCalendar", "desc");
+ ruleItem1.updateDateEffective( effectiveDate );
+ ruleItem1.updateDateExpired( expiredDate );
+
+ assertNotNull(ruleItem1);
+ assertNotNull(ruleItem1.getNode());
+ assertEquals(effectiveDate, ruleItem1.getDateEffective());
+ assertEquals(expiredDate, ruleItem1.getDateExpired());
+
+ ruleItem1.checkin( "ho " );
+ }
+
+ public void testGetState() {
+ RulesRepository rulesRepository = RepositorySessionUtil.getRepository();
+
+
+ StateItem stateItem1 = rulesRepository.getState("testGetState");
+ assertNotNull(stateItem1);
+ assertEquals("testGetState", stateItem1.getName());
+
+ StateItem stateItem2 = rulesRepository.getState("testGetState");
+ assertNotNull(stateItem2);
+ assertEquals("testGetState", stateItem2.getName());
+ assertEquals(stateItem1, stateItem2);
+ }
+
+ public void testGetTag() {
+ RulesRepository rulesRepository = RepositorySessionUtil.getRepository();
+
+ CategoryItem root = rulesRepository.loadCategory( "/" );
+ CategoryItem tagItem1 = root.addCategory( "testGetTag", "ho");
+ assertNotNull(tagItem1);
+ assertEquals("testGetTag", tagItem1.getName());
+ assertEquals("testGetTag", tagItem1.getFullPath());
+
+ CategoryItem tagItem2 = rulesRepository.loadCategory("testGetTag");
+ assertNotNull(tagItem2);
+ assertEquals("testGetTag", tagItem2.getName());
+ assertEquals(tagItem1, tagItem2);
+
+ //now test getting a tag down in the tag hierarchy
+ CategoryItem tagItem3 = tagItem2.addCategory( "TestChildTag1", "ka");
+ assertNotNull(tagItem3);
+ assertEquals("TestChildTag1", tagItem3.getName());
+ assertEquals("testGetTag/TestChildTag1", tagItem3.getFullPath());
+ }
+
+
+
+ public void testListPackages() {
+ RulesRepository rulesRepository = RepositorySessionUtil.getRepository();
+
+
+ PackageItem rulePackageItem1 = rulesRepository.createPackage("testListPackages", "desc");
+
+ Iterator it = rulesRepository.listPackages();
+ assertTrue(it.hasNext());
+
+ boolean found = false;
+ while ( it.hasNext() ) {
+ PackageItem element = (PackageItem) it.next();
+ if (element.getName().equals( "testListPackages" ))
+ {
+ found = true;
+ break;
+ }
+ }
+ assertTrue(found);
+
+ }
+
+ public void testMoveRulePackage() throws Exception {
+ RulesRepository repo = RepositorySessionUtil.getRepository();
+ PackageItem pkg = repo.createPackage( "testMove", "description" );
+ AssetItem r = pkg.addAsset( "testMove", "description" );
+ r.checkin( "version0" );
+
+ assertEquals("testMove", r.getPackageName());
+
+ repo.save();
+
+ assertEquals(1, iteratorToList( pkg.getAssets()).size());
+
+ repo.createPackage( "testMove2", "description" );
+ repo.moveRuleItemPackage( "testMove2", r.node.getUUID(), "explanation" );
+
+ pkg = repo.loadPackage( "testMove" );
+ assertEquals(0, iteratorToList( pkg.getAssets() ).size());
+
+ pkg = repo.loadPackage( "testMove2" );
+ assertEquals(1, iteratorToList( pkg.getAssets() ).size());
+
+ r = (AssetItem) pkg.getAssets().next();
+ assertEquals("testMove", r.getName());
+ assertEquals("testMove2", r.getPackageName());
+ assertEquals("explanation", r.getCheckinComment());
+
+ AssetItem p = (AssetItem) r.getPrecedingVersion();
+ assertEquals("testMove", p.getPackageName());
+ assertEquals("version0", p.getCheckinComment());
+
+ }
+
+ List iteratorToList(Iterator it) {
+ List list = new ArrayList();
+ while(it.hasNext()) {
+ list.add( it.next() );
+ }
+ return list;
+ }
+}
Deleted: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java 2006-12-18 08:46:35 UTC (rev 8378)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java 2006-12-18 11:21:12 UTC (rev 8379)
@@ -1,235 +0,0 @@
-package org.drools.repository;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.jcr.NodeIterator;
-
-import junit.framework.TestCase;
-
-public class RulesRepositoryTestCase extends TestCase {
-
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- public void testDefaultPackage() throws Exception {
- RulesRepository repo = RepositorySession.getRepository();
-
- Iterator it = repo.listPackages();
- boolean foundDefault = false;
- while(it.hasNext()) {
- PackageItem item = (PackageItem) it.next();
- if (item.getName().equals( RulesRepository.DEFAULT_PACKAGE )) {
- foundDefault = true;
- }
- }
- assertTrue(foundDefault);
-
- PackageItem def = repo.loadDefaultPackage();
- assertNotNull(def);
- assertEquals("default", def.getName());
-
-
- }
-
- public void testAddVersionARule() throws Exception {
- RulesRepository repo = RepositorySession.getRepository();
- PackageItem pack = repo.createPackage( "testAddVersionARule", "description" );
- repo.save();
-
- AssetItem rule = pack.addAsset( "my rule", "foobar" );
- assertEquals("my rule", rule.getName());
-
- rule.updateContent( "foo foo" );
- rule.checkin( "version0" );
-
- pack.addAsset( "other rule", "description" );
-
- rule.updateContent( "foo bar" );
- rule.checkin( "version1" );
-
- PackageItem pack2 = repo.loadPackage( "testAddVersionARule" );
-
- Iterator it = pack2.getAssets();
-
- it.next();
- it.next();
-
- assertFalse(it.hasNext());
-
- AssetItem prev = (AssetItem) rule.getPrecedingVersion();
-
- assertEquals("foo bar", rule.getContent());
- assertEquals("foo foo", prev.getContent());
-
-
-
- }
-
-
- public void testLoadRuleByUUID() throws Exception {
- RulesRepository repo = RepositorySession.getRepository();
-
- PackageItem rulePackageItem = repo.loadDefaultPackage();
- AssetItem rule = rulePackageItem.addAsset( "testLoadRuleByUUID", "this is a description");
-
- repo.save();
-
- String uuid = rule.getNode().getUUID();
-
- AssetItem loaded = repo.loadAssetByUUID(uuid);
- assertNotNull(loaded);
- assertEquals("testLoadRuleByUUID", loaded.getName());
- assertEquals( "this is a description", loaded.getDescription());
-
- String oldVersionNumber = loaded.getVersionNumber();
-
- loaded.updateContent( "xxx" );
- loaded.checkin( "woo" );
-
-
-
-
- AssetItem reload = repo.loadAssetByUUID( uuid );
- assertEquals("testLoadRuleByUUID", reload.getName());
- assertEquals("xxx", reload.getContent());
- System.out.println(reload.getVersionNumber());
- System.out.println(loaded.getVersionNumber());
- assertFalse(reload.getVersionNumber().equals( oldVersionNumber ));
-
-
- // try loading rule package that was not created
- try {
- repo.loadAssetByUUID("01010101-0101-0101-0101-010101010101");
- fail("Exception not thrown loading rule package that was not created.");
- } catch (RulesRepositoryException e) {
- // that is OK!
- assertNotNull(e.getMessage());
- }
- }
-
- public void testAddRuleCalendarWithDates() {
- RulesRepository rulesRepository = RepositorySession.getRepository();
-
-
- Calendar effectiveDate = Calendar.getInstance();
- Calendar expiredDate = Calendar.getInstance();
- expiredDate.setTimeInMillis(effectiveDate.getTimeInMillis() + (1000 * 60 * 60 * 24));
- AssetItem ruleItem1 = rulesRepository.loadDefaultPackage().addAsset("testAddRuleCalendarCalendar", "desc");
- ruleItem1.updateDateEffective( effectiveDate );
- ruleItem1.updateDateExpired( expiredDate );
-
- assertNotNull(ruleItem1);
- assertNotNull(ruleItem1.getNode());
- assertEquals(effectiveDate, ruleItem1.getDateEffective());
- assertEquals(expiredDate, ruleItem1.getDateExpired());
-
- ruleItem1.checkin( "ho " );
- }
-
- public void testGetState() {
- RulesRepository rulesRepository = RepositorySession.getRepository();
-
-
- StateItem stateItem1 = rulesRepository.getState("testGetState");
- assertNotNull(stateItem1);
- assertEquals("testGetState", stateItem1.getName());
-
- StateItem stateItem2 = rulesRepository.getState("testGetState");
- assertNotNull(stateItem2);
- assertEquals("testGetState", stateItem2.getName());
- assertEquals(stateItem1, stateItem2);
- }
-
- public void testGetTag() {
- RulesRepository rulesRepository = RepositorySession.getRepository();
-
- CategoryItem root = rulesRepository.loadCategory( "/" );
- CategoryItem tagItem1 = root.addCategory( "testGetTag", "ho");
- assertNotNull(tagItem1);
- assertEquals("testGetTag", tagItem1.getName());
- assertEquals("testGetTag", tagItem1.getFullPath());
-
- CategoryItem tagItem2 = rulesRepository.loadCategory("testGetTag");
- assertNotNull(tagItem2);
- assertEquals("testGetTag", tagItem2.getName());
- assertEquals(tagItem1, tagItem2);
-
- //now test getting a tag down in the tag hierarchy
- CategoryItem tagItem3 = tagItem2.addCategory( "TestChildTag1", "ka");
- assertNotNull(tagItem3);
- assertEquals("TestChildTag1", tagItem3.getName());
- assertEquals("testGetTag/TestChildTag1", tagItem3.getFullPath());
- }
-
-
-
- public void testListPackages() {
- RulesRepository rulesRepository = RepositorySession.getRepository();
-
-
- PackageItem rulePackageItem1 = rulesRepository.createPackage("testListPackages", "desc");
-
- Iterator it = rulesRepository.listPackages();
- assertTrue(it.hasNext());
-
- boolean found = false;
- while ( it.hasNext() ) {
- PackageItem element = (PackageItem) it.next();
- if (element.getName().equals( "testListPackages" ))
- {
- found = true;
- break;
- }
- }
- assertTrue(found);
-
- }
-
- public void testMoveRulePackage() throws Exception {
- RulesRepository repo = RepositorySession.getRepository();
- PackageItem pkg = repo.createPackage( "testMove", "description" );
- AssetItem r = pkg.addAsset( "testMove", "description" );
- r.checkin( "version0" );
-
- assertEquals("testMove", r.getPackageName());
-
- repo.save();
-
- assertEquals(1, iteratorToList( pkg.getAssets()).size());
-
- repo.createPackage( "testMove2", "description" );
- repo.moveRuleItemPackage( "testMove2", r.node.getUUID(), "explanation" );
-
- pkg = repo.loadPackage( "testMove" );
- assertEquals(0, iteratorToList( pkg.getAssets() ).size());
-
- pkg = repo.loadPackage( "testMove2" );
- assertEquals(1, iteratorToList( pkg.getAssets() ).size());
-
- r = (AssetItem) pkg.getAssets().next();
- assertEquals("testMove", r.getName());
- assertEquals("testMove2", r.getPackageName());
- assertEquals("explanation", r.getCheckinComment());
-
- AssetItem p = (AssetItem) r.getPrecedingVersion();
- assertEquals("testMove", p.getPackageName());
- assertEquals("version0", p.getCheckinComment());
-
- }
-
- List iteratorToList(Iterator it) {
- List list = new ArrayList();
- while(it.hasNext()) {
- list.add( it.next() );
- }
- return list;
- }
-}
More information about the jboss-svn-commits
mailing list