[jboss-svn-commits] JBL Code SVN: r19099 - 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 01:37:57 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-19 01:37:57 -0400 (Wed, 19 Mar 2008)
New Revision: 19099
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:
-Add workingmemory serialisation
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 04:49:48 UTC (rev 19098)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java 2008-03-19 05:37:57 UTC (rev 19099)
@@ -20,13 +20,15 @@
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;
import java.util.List;
public class Cheesery
implements
- Externalizable {
+ Serializable {
/**
*
*/
@@ -39,6 +41,10 @@
private int status;
private int totalAmount;
private Maturity maturity;
+
+ public Cheesery() {
+
+ }
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
cheeses = (List)in.readObject();
@@ -53,7 +59,8 @@
out.writeInt(status);
out.writeInt(totalAmount);
out.writeObject(maturity);
- }
+ }
+
public List getCheeses() {
return this.cheeses;
}
@@ -107,6 +114,14 @@
public Maturity(final String age) {
this.age = age;
}
+
+ private Object readResolve() throws ObjectStreamException {
+ if ( "young".equals( this.age) ) {
+ return Maturity.YOUNG;
+ } else {
+ return Maturity.OLD;
+ }
+ }
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
age = (String)in.readObject();
@@ -120,4 +135,34 @@
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;
+ if ( obj == null ) return false;
+ if ( getClass() != obj.getClass() ) return false;
+ final Cheesery other = (Cheesery) obj;
+ if ( cheeses == null ) {
+ if ( other.cheeses != null ) return false;
+ } else if ( !cheeses.equals( other.cheeses ) ) return false;
+ if ( maturity == null ) {
+ if ( other.maturity != null ) return false;
+ } else if ( !maturity.equals( other.maturity ) ) return false;
+ if ( status != other.status ) return false;
+ if ( totalAmount != other.totalAmount ) return false;
+ return true;
+ }
+
+
}
\ 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 04:49:48 UTC (rev 19098)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-19 05:37:57 UTC (rev 19099)
@@ -101,6 +101,7 @@
import org.drools.spi.GlobalResolver;
import org.drools.xml.XmlDumper;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInput;
@@ -191,23 +192,25 @@
assertEquals( 2,
list.size() );
+ assertSame( cheesery1, list.get( 0 ) );
assertEquals( cheesery1,
list.get( 0 ) );
assertEquals( cheesery2,
list.get( 1 ) );
-// // now try it again with the list from a serialised WM
-// workingMemory = SerializationHelper.serializeObject(workingMemory);
-// list = (List) workingMemory.getGlobal( "list" );
-// workingMemory.fireAllRules();
-//
-// assertEquals( 2,
-// list.size() );
-//
-// assertEquals( cheesery1,
-// list.get( 0 ) );
-// assertEquals( cheesery2,
-// list.get( 1 ) );
+ // now try it again with the list from a serialised WM
+ workingMemory = ruleBase.newStatefulSession( new ByteArrayInputStream( SerializationHelper.serializeOut( workingMemory )) );
+ list = (List) workingMemory.getGlobal( "list" );
+ workingMemory.fireAllRules();
+
+ assertEquals( 2,
+ list.size() );
+
+ assertNotSame( cheesery1, list.get( 0 ) );
+ assertEquals( cheesery1,
+ list.get( 0 ) );
+ assertEquals( cheesery2,
+ list.get( 1 ) );
}
public void testPrimitiveArray() throws Exception {
More information about the jboss-svn-commits
mailing list