[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