[jboss-svn-commits] JBL Code SVN: r19131 - in labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools: integrationtests and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 19 22:09:46 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-03-19 22:09:46 -0400 (Wed, 19 Mar 2008)
New Revision: 19131

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
-improved static fields test, shows External doesn't work on facts.

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2008-03-19 23:16:24 UTC (rev 19130)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2008-03-20 02:09:46 UTC (rev 19131)
@@ -20,6 +20,7 @@
 import java.io.ObjectOutput;
 import java.io.IOException;
 import java.io.ObjectInput;
+import java.io.ObjectStreamException;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -42,20 +43,6 @@
     private int               totalAmount;
     private Maturity          maturity;
 
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        else if (obj instanceof Cheesery) {
-            Cheesery    that    = (Cheesery)obj;
-            return cheeses.equals(that.cheeses) &&
-                   status == that.status &&
-                   totalAmount == that.totalAmount &&
-                   maturity == that.maturity || maturity != null && maturity.equals(that.maturity);
-        }
-        return false;
-    }
-
     public List getCheeses() {
         return this.cheeses;
     }
@@ -104,7 +91,7 @@
         private String               age;
 
         public Maturity() {
-        }
+        }       
 
         public Maturity(final String age) {
             this.age = age;
@@ -123,10 +110,44 @@
 
         public void writeExternal(ObjectOutput out) throws IOException {
             out.writeObject(age);
+        }
 
-        }
+        private Object readResolve() throws ObjectStreamException {
+            if ( "young".equals( this.age) ) {
+                return Maturity.YOUNG;
+            } else {
+                return Maturity.OLD;
+            }
+        }  
+        
         public String toString() {
             return "[Maturity age='" + this.age + "']";
         }
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((cheeses == null) ? 0 : cheeses.hashCode());
+        result = prime * result + ((maturity == null) ? 0 : maturity.hashCode());
+        result = prime * result + status;
+        result = prime * result + totalAmount;
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        else if (obj instanceof Cheesery) {
+            Cheesery    that    = (Cheesery)obj;
+            return cheeses.equals(that.cheeses) &&
+                   status == that.status &&
+                   totalAmount == that.totalAmount &&
+                   maturity == that.maturity || maturity != null && maturity.equals(that.maturity);
+        }
+        return false;
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-19 23:16:24 UTC (rev 19130)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-20 02:09:46 UTC (rev 19131)
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.ObjectInput;
@@ -173,29 +174,46 @@
         ruleBase    = SerializationHelper.serializeObject(ruleBase);
         WorkingMemory workingMemory = ruleBase.newStatefulSession();
 
+        // will test serialisation of int and typesafe enums tests
+        workingMemory   = ruleBase.newStatefulSession( new ByteArrayInputStream( SerializationHelper.serializeOut(  workingMemory  )) );
+        
         List list = new ArrayList();
         workingMemory.setGlobal( "list",
                                  list );
-
+                       
         final Cheesery cheesery1 = new Cheesery();
         cheesery1.setStatus( Cheesery.SELLING_CHEESE );
         cheesery1.setMaturity( Maturity.OLD );
-        workingMemory.insert( cheesery1 );
+        workingMemory.insert( cheesery1 );                        
 
         final Cheesery cheesery2 = new Cheesery();
         cheesery2.setStatus( Cheesery.MAKING_CHEESE );
         cheesery2.setMaturity( Maturity.YOUNG );
-        workingMemory.insert( cheesery2 );
+        workingMemory.insert( cheesery2 );        
+        
+        workingMemory.fireAllRules();        
+        
+        assertEquals( 2,
+                      list.size() );
 
-        workingMemory   = SerializationHelper.serializeObject(workingMemory);
+        assertSame( cheesery1, list.get( 0 ) );
+        assertEquals( cheesery1,
+                      list.get( 0 ) );
+        assertSame( cheesery2, list.get( 1 ) );
+        assertEquals( cheesery2,
+                      list.get( 1 ) );        
+
+        // test list after serialising
+        workingMemory   = ruleBase.newStatefulSession( new ByteArrayInputStream( SerializationHelper.serializeOut(  workingMemory  )) );
         list = (List) workingMemory.getGlobal( "list" );
-        workingMemory.fireAllRules();
+	    workingMemory.fireAllRules();
 
-        assertEquals( 2,
-                      list.size() );
-
-        assertTrue( cheesery1.equals( list.get( 0 ) ));
-        assertTrue( cheesery2.equals( list.get( 1 ) ));
+		assertEquals(2, list.size());
+		
+		assertNotSame( cheesery1, list.get( 0 ) );
+		assertEquals(cheesery1, list.get(0));
+		assertNotSame( cheesery2, list.get( 1 ) );
+		assertEquals(cheesery2, list.get(1));        
     }
 
     public void testPrimitiveArray() throws Exception {




More information about the jboss-svn-commits mailing list