[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