[jboss-svn-commits] JBL Code SVN: r34978 - labs/jbossrules/branches/kstam_guvnor_modeshape/drools-repository/src/test/java/org/drools/repository.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 2 15:54:44 EDT 2010


Author: kurt.stam at jboss.com
Date: 2010-09-02 15:54:43 -0400 (Thu, 02 Sep 2010)
New Revision: 34978

Modified:
   labs/jbossrules/branches/kstam_guvnor_modeshape/drools-repository/src/test/java/org/drools/repository/CategoryItemTest.java
Log:
Adding test to demonstrate a bug in ModeShape: https://jira.jboss.org/browse/MODE-877

Modified: labs/jbossrules/branches/kstam_guvnor_modeshape/drools-repository/src/test/java/org/drools/repository/CategoryItemTest.java
===================================================================
--- labs/jbossrules/branches/kstam_guvnor_modeshape/drools-repository/src/test/java/org/drools/repository/CategoryItemTest.java	2010-09-02 19:26:26 UTC (rev 34977)
+++ labs/jbossrules/branches/kstam_guvnor_modeshape/drools-repository/src/test/java/org/drools/repository/CategoryItemTest.java	2010-09-02 19:54:43 UTC (rev 34978)
@@ -16,9 +16,22 @@
 
 package org.drools.repository;
 
+import java.util.Calendar;
+import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
+import javax.jcr.Node;
+import javax.jcr.Property;
+import javax.jcr.PropertyIterator;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+import javax.jcr.Value;
+import javax.jcr.Workspace;
+
+import org.junit.Ignore;
 import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -27,6 +40,8 @@
 
 public class CategoryItemTest extends RepositoryTestCase {
 
+	
+	
 	@Test
     public void testTagItem() throws Exception {
 
@@ -95,6 +110,11 @@
 
 	@Test
     public void testGetChildTags() {
+		
+		final CategoryItem root = getRepo().loadCategory("/");
+
+        root.addCategory("TestTag", "nothing to see");
+        
         CategoryItem tagItem1 = getRepo().loadCategory("TestTag");
         assertNotNull(tagItem1);
         assertEquals("TestTag", tagItem1.getName());
@@ -190,8 +210,63 @@
         as.archiveItem(true);
 
         repo.loadCategory("testRemoveCategoryWithArchivedCat").remove();
+        
         repo.save();
 
-        // as.remove();
+        as.remove();
     }
+	/**
+	 * This removed the complexity of testRemoveCategoryLinkedWithArchived, and
+	 * was added to show a problem in ModeShape: https://jira.jboss.org/browse/MODE-877
+	 */
+	@Test 
+	public void simpleRemoveCategoryLinkedWithArchived() {
+		try {
+			RulesRepository repo = getRepo();	
+			Session session = repo.getSession();
+
+			Node rn = session.getRootNode();
+			Node asset = rn.addNode("asset","drools:assetNodeType");
+			//Adding some required properties
+			asset.setProperty("drools:packageName", "one");
+			asset.setProperty("drools:title", "title");
+			asset.setProperty("drools:format", "format");
+			asset.setProperty("drools:description", "description");
+			Calendar lastModified = Calendar.getInstance();
+			asset.setProperty("drools:lastModified", lastModified);
+            //Adding a category
+			Node category = rn.addNode("category","drools:categoryNodeType");
+			//adding the category to the asset
+			Value[] newTagValues = new Value[1];
+            newTagValues[0] = asset.getSession().getValueFactory().createValue( category );
+            asset.setProperty( "drools:categoryReference",
+                    newTagValues );
+            //save the session
+			session.save();
+			//checking that is there.
+			PropertyIterator pi = category.getReferences();
+			while (pi.hasNext()) {
+				Property property = pi.nextProperty();
+				String name = property.getName();
+				System.out.println("Name=" + name);
+				assertEquals("drools:categoryReference", name);
+			}
+			//removing the category from the asset
+			Value[] updatedTagValues = new Value[1];
+			updatedTagValues[0] = null;
+			asset.setProperty( "drools:categoryReference",
+					updatedTagValues );
+			//session.save();
+			//removing the category itself
+			category.remove();
+	        //saving the session, leads to a Referential Integrity Exception on ModeShape: 
+			//https://jira.jboss.org/browse/MODE-877
+			session.save();
+
+		} catch (RepositoryException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+			fail();
+		}
+	}
 }



More information about the jboss-svn-commits mailing list