[jboss-svn-commits] JBL Code SVN: r5847 - in labs/jbossrules/trunk/repository: . src/java/org/drools/repository src/java/org/drools/repository/test

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Aug 13 20:33:22 EDT 2006


Author: bentruitt
Date: 2006-08-13 20:33:10 -0400 (Sun, 13 Aug 2006)
New Revision: 5847

Modified:
   labs/jbossrules/trunk/repository/build.xml
   labs/jbossrules/trunk/repository/src/java/org/drools/repository/RulePackageItem.java
   labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/DslItemTestCase.java
   labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RuleItemTestCase.java
   labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulePackageItemTestCase.java
   labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulesRepositoryTestCase.java
   labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/TagItemTestCase.java
Log:
Unit test passing. RemoveRule() implemented on RulePackageItem.

Modified: labs/jbossrules/trunk/repository/build.xml
===================================================================
--- labs/jbossrules/trunk/repository/build.xml	2006-08-13 22:03:56 UTC (rev 5846)
+++ labs/jbossrules/trunk/repository/build.xml	2006-08-14 00:33:10 UTC (rev 5847)
@@ -95,7 +95,7 @@
         <delete dir="${classes.dir}/com"/>        
         <delete>
             <fileset dir="${reports.dir}" includes="**/*"/>        
-        </delete>
+        </delete>        
     </target>
         
     <target name="deploy" description="ship the jars, wars, whatever to the execution system (this system)">

Modified: labs/jbossrules/trunk/repository/src/java/org/drools/repository/RulePackageItem.java
===================================================================
--- labs/jbossrules/trunk/repository/src/java/org/drools/repository/RulePackageItem.java	2006-08-13 22:03:56 UTC (rev 5846)
+++ labs/jbossrules/trunk/repository/src/java/org/drools/repository/RulePackageItem.java	2006-08-14 00:33:10 UTC (rev 5847)
@@ -144,6 +144,53 @@
     }
     
     /**
+     * Removes the specified rule from the rule package node this object represents.  
+     * 
+     * @param ruleItem the ruleItem corresponding to the node to remove from the rule package 
+     *                 this object represents
+     * @throws RulesRepositoryException
+     */
+    public void removeRule(RuleItem ruleItem) throws RulesRepositoryException {                
+        try {
+            Value[] oldValueArray = this.node.getProperty(RULE_REFERENCE_PROPERTY_NAME).getValues();
+            Value[] newValueArray = new Value[oldValueArray.length - 1];
+            
+            boolean wasThere = false;
+            
+            int j=0;
+            for(int i=0; i<oldValueArray.length; i++) {
+                Node ruleNode = this.node.getSession().getNodeByUUID(oldValueArray[i].getString());
+                RuleItem currentRuleItem = new RuleItem(this.rulesRepository, ruleNode);
+                if(currentRuleItem.equals(ruleItem)) {
+                    wasThere = true;
+                }
+                else {
+                    newValueArray[j] = oldValueArray[i];
+                    j++;
+                }
+            }
+                            
+            if(!wasThere) {
+                return;
+            }
+            else {
+                this.node.checkout();
+                this.node.setProperty(RULE_REFERENCE_PROPERTY_NAME, newValueArray);                
+                this.node.getSession().save();
+                this.node.checkin();
+            }
+        }
+        catch(PathNotFoundException e) {
+            //the property has not been created yet. 
+            return;
+        }  
+        catch(Exception e) {
+            log.error("Caught exception", e);
+            throw new RulesRepositoryException(e);
+        }
+    }
+    
+    /**
      * Gets a list of RuleItem objects for each rule node in this rule package
      * 
      * @return the List object holding the RuleItem objects in this rule package

Modified: labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/DslItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/DslItemTestCase.java	2006-08-13 22:03:56 UTC (rev 5846)
+++ labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/DslItemTestCase.java	2006-08-14 00:33:10 UTC (rev 5847)
@@ -15,7 +15,7 @@
     protected void setUp() throws Exception {
         super.setUp();
         
-        rulesRepository = new RulesRepository();
+        rulesRepository = new RulesRepository(true);
     }
 
     protected void tearDown() throws Exception {        

Modified: labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RuleItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RuleItemTestCase.java	2006-08-13 22:03:56 UTC (rev 5846)
+++ labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RuleItemTestCase.java	2006-08-14 00:33:10 UTC (rev 5847)
@@ -12,7 +12,7 @@
     
     protected void setUp() throws Exception {
         super.setUp();
-        this.rulesRepository = new RulesRepository();
+        this.rulesRepository = new RulesRepository(true);
     }
 
     protected void tearDown() throws Exception {

Modified: labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulePackageItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulePackageItemTestCase.java	2006-08-13 22:03:56 UTC (rev 5846)
+++ labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulePackageItemTestCase.java	2006-08-14 00:33:10 UTC (rev 5847)
@@ -12,7 +12,7 @@
     
     protected void setUp() throws Exception {
         super.setUp();
-        this.rulesRepository = new RulesRepository();        
+        this.rulesRepository = new RulesRepository(true);        
     }
 
     protected void tearDown() throws Exception {
@@ -67,7 +67,7 @@
             ruleItem1.updateContentFromFile(drlFile2);
             rules = rulePackageItem1.getRules();
             assertNotNull(rules);
-            assertEquals(rules.size(), 1);
+            assertEquals(1, rules.size());
             assertEquals("drl1.drl", ((RuleItem)rules.get(0)).getName());
             assertEquals("package org.drools.examples", ((RuleItem)rules.get(0)).getContent());
             
@@ -182,4 +182,75 @@
             fail("Caught unexpected exception: " + e);
         }
     }
+    
+    public void testRemoveRule() {
+        try {
+            RulePackageItem rulePackageItem1 = this.rulesRepository.createRulePackage("testRulePackage");
+            
+            File drlFile1 = new File("./src/java/org/drools/repository/test/test_data/drl1.drl");
+            RuleItem ruleItem1 = this.rulesRepository.addRuleFromFile(drlFile1);
+            
+            rulePackageItem1.addRule(ruleItem1);
+            
+            List rules = rulePackageItem1.getRules();
+            assertNotNull(rules);
+            assertEquals(1, rules.size());
+            assertEquals("drl1.drl", ((RuleItem)rules.get(0)).getName());
+                                    
+            File drlFile2 = new File("./src/java/org/drools/repository/test/test_data/drl3.drl");
+            ruleItem1.updateContentFromFile(drlFile2);
+            rules = rulePackageItem1.getRules();
+            assertNotNull(rules);
+            assertEquals(1, rules.size());
+            assertEquals("drl1.drl", ((RuleItem)rules.get(0)).getName());
+            assertEquals("package org.drools.examples", ((RuleItem)rules.get(0)).getContent());
+            
+            File drlFile3 = new File("./src/java/org/drools/repository/test/test_data/drl2.drl");
+            RuleItem ruleItem2 = this.rulesRepository.addRuleFromFile(drlFile3);
+            rulePackageItem1.addRule(ruleItem2);
+            
+            //remove the rule, make sure the other rule int the pacakge stays around
+            rulePackageItem1.removeRule(ruleItem1);
+            rules = rulePackageItem1.getRules();
+            assertEquals(1, rules.size());
+            assertEquals("drl2.drl", ((RuleItem)rules.get(0)).getName());
+            
+            //remove the rule that is following the head revision, make sure the pacakge is now empty
+            rulePackageItem1.removeRule(ruleItem2);
+            rules = rulePackageItem1.getRules();
+            assertNotNull(rules);
+            assertEquals(0, rules.size());
+                        
+        }
+        catch(Exception e) {
+            e.printStackTrace();
+            fail("Caught unexpected exception: " + e);
+        }
+    }
+    
+    public void testRemoveAllRules() {
+        try {
+            RulePackageItem rulePackageItem1 = this.rulesRepository.createRulePackage("testRulePackage");
+            
+            File drlFile1 = new File("./src/java/org/drools/repository/test/test_data/drl1.drl");
+            RuleItem ruleItem1 = this.rulesRepository.addRuleFromFile(drlFile1);
+            
+            rulePackageItem1.addRule(ruleItem1);
+            
+            List rules = rulePackageItem1.getRules();
+            assertNotNull(rules);
+            assertEquals(1, rules.size());
+            assertEquals("drl1.drl", ((RuleItem)rules.get(0)).getName());
+            
+            rulePackageItem1.removeAllRules();
+            
+            rules = rulePackageItem1.getRules();
+            assertNotNull(rules);
+            assertEquals(0, rules.size());            
+        }
+        catch(Exception e) {
+            e.printStackTrace();
+            fail("Caught unexpected exception: " + e);
+        }
+    }
 }

Modified: labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulesRepositoryTestCase.java
===================================================================
--- labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulesRepositoryTestCase.java	2006-08-13 22:03:56 UTC (rev 5846)
+++ labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/RulesRepositoryTestCase.java	2006-08-14 00:33:10 UTC (rev 5847)
@@ -19,7 +19,7 @@
     public void testRulesRepository() {
         RulesRepository rulesRepository = null;
         try {
-            rulesRepository = new RulesRepository();
+            rulesRepository = new RulesRepository(true);
         }
         catch(Exception e) {
             fail("Caught unexpected Exception: " + e);
@@ -51,7 +51,7 @@
     public void testAddRuleFromFileFileDslItem() {
         RulesRepository rulesRepository = null;
         try {
-            rulesRepository = new RulesRepository();
+            rulesRepository = new RulesRepository(true);
             File dslFile1 = new File("./src/java/org/drools/repository/test/test_data/dsl1.dsl");
             
             DslItem dslItem1 = rulesRepository.addDslFromFile(dslFile1);
@@ -90,7 +90,7 @@
     public void testAddRuleFromFileFileDslItemBoolean() {
         RulesRepository rulesRepository = null;
         try {
-            rulesRepository = new RulesRepository();
+            rulesRepository = new RulesRepository(true);
             File dslFile1 = new File("./src/java/org/drools/repository/test/test_data/dsl1.dsl");
             
             DslItem dslItem1 = rulesRepository.addDslFromFile(dslFile1);
@@ -113,7 +113,7 @@
             
             //now test not following the head revision
             rulesRepository.logout();
-            rulesRepository = new RulesRepository();
+            rulesRepository = new RulesRepository(true);
             
             dslItem1 = rulesRepository.addDslFromFile(dslFile1);
             assertNotNull(dslItem1);
@@ -153,7 +153,7 @@
     public void testGetState() {
         RulesRepository rulesRepository = null;
         try {
-            rulesRepository = new RulesRepository();
+            rulesRepository = new RulesRepository(true);
             
             StateItem stateItem1 = rulesRepository.getState("TestState");
             assertNotNull(stateItem1);
@@ -182,7 +182,7 @@
     public void testGetTag() {
         RulesRepository rulesRepository = null;
         try {
-            rulesRepository = new RulesRepository();
+            rulesRepository = new RulesRepository(true);
             
             TagItem tagItem1 = rulesRepository.getTag("TestTag");
             assertNotNull(tagItem1);

Modified: labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/TagItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/TagItemTestCase.java	2006-08-13 22:03:56 UTC (rev 5846)
+++ labs/jbossrules/trunk/repository/src/java/org/drools/repository/test/TagItemTestCase.java	2006-08-14 00:33:10 UTC (rev 5847)
@@ -12,7 +12,7 @@
     
     protected void setUp() throws Exception {
         super.setUp();
-        rulesRepository = new RulesRepository();
+        rulesRepository = new RulesRepository(true);
     }
 
     protected void tearDown() throws Exception {




More information about the jboss-svn-commits mailing list