[jboss-svn-commits] JBL Code SVN: r15610 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 5 17:34:56 EDT 2007
Author: fmeyer
Date: 2007-10-05 17:34:55 -0400 (Fri, 05 Oct 2007)
New Revision: 15610
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl
Log:
Adding unit test for JBRULES-1220
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 2007-10-05 18:49:42 UTC (rev 15609)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2007-10-05 21:34:55 UTC (rev 15610)
@@ -151,7 +151,7 @@
assertEquals( new Integer( 5 ),
list.get( 0 ) );
}
-
+
public void testGlobals2() throws Exception {
final PackageBuilder builder = new PackageBuilder();
@@ -194,7 +194,7 @@
assertEquals( "not memberOf",
results.get( 1 ) );
}
-
+
public void testCustomGlobalResolver() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_globalCustomResolver.drl" ) ) );
@@ -207,10 +207,55 @@
final Map map = new HashMap();
List list = new ArrayList();
String string = "stilton";
+
+ map.put( "list",
+ list );
+ map.put( "string",
+ string );
+
+ workingMemory.setGlobalResolver( new GlobalResolver() {
+ public Object resolveGlobal(String identifier) {
+ return map.get( identifier );
+ }
+
+ public void setGlobal(String identifier,
+ Object value) {
+ map.put( identifier,
+ value );
+ }
+
+ } );
+
+ workingMemory.fireAllRules();
+
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
+ }
+
+ public void testCustomGlobalResolverWithWorkingMemoryObject() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_globalCustomResolver.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+ final Map map = new HashMap();
+ List list = new ArrayList();
+ String string = "stilton";
+
+ map.put( "list",
+ list );
+ map.put( "string",
+ string );
- map.put("list", list);
- map.put("string", string);
+ Cheese bree = new Cheese ();
+ bree.setPrice( 100 );
+
+ workingMemory.insert( bree );
+
workingMemory.setGlobalResolver( new GlobalResolver() {
public Object resolveGlobal(String identifier) {
return map.get( identifier );
@@ -218,16 +263,18 @@
public void setGlobal(String identifier,
Object value) {
- map.put( identifier, value );
+ map.put( identifier,
+ value );
}
-
+
} );
workingMemory.fireAllRules();
assertEquals( new Integer( 5 ),
- list.get( 0 ) );
- }
+ list.get( 0 ) );
+ }
+
public void testFieldBiningsAndEvalSharing() throws Exception {
final String drl = "test_FieldBindingsAndEvalSharing.drl";
@@ -377,7 +424,7 @@
final DrlParser parser = new DrlParser();
final PackageDescr packageDescr = parser.parse( reader );
if ( parser.hasErrors() ) {
- System.err.println(parser.getErrors());
+ System.err.println( parser.getErrors() );
Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)" );
}
// pre build the package
@@ -448,12 +495,13 @@
final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- Cheese c = new Cheese("fubar", 2);
+ Cheese c = new Cheese( "fubar",
+ 2 );
-
workingMemory.insert( c );
workingMemory.fireAllRules();
- assertEquals(42, c.getPrice());
+ assertEquals( 42,
+ c.getPrice() );
}
public void testLiteral() throws Exception {
@@ -1267,7 +1315,7 @@
CustomConsequenceExceptionHandler handler = new CustomConsequenceExceptionHandler();
conf.setConsequenceExceptionHandler( handler );
- final RuleBase ruleBase = getRuleBase(conf);
+ final RuleBase ruleBase = getRuleBase( conf );
ruleBase.addPackage( pkg );
final WorkingMemory workingMemory = ruleBase.newStatefulSession();
@@ -1280,7 +1328,9 @@
assertTrue( handler.isCalled() );
}
- public static class CustomConsequenceExceptionHandler implements ConsequenceExceptionHandler {
+ public static class CustomConsequenceExceptionHandler
+ implements
+ ConsequenceExceptionHandler {
private boolean called;
@@ -2483,7 +2533,8 @@
workingMemory.setGlobal( "results",
results );
- final Order order = new Order( 10, "Bob" );
+ final Order order = new Order( 10,
+ "Bob" );
final OrderItem item1 = new OrderItem( order,
1 );
final OrderItem item2 = new OrderItem( order,
@@ -3088,28 +3139,32 @@
workingMemory.setGlobal( "results",
list );
- final Order order1 = new Order( 10, "Bob" );
+ final Order order1 = new Order( 10,
+ "Bob" );
final OrderItem item11 = new OrderItem( order1,
1 );
final OrderItem item12 = new OrderItem( order1,
2 );
order1.addItem( item11 );
order1.addItem( item12 );
- final Order order2 = new Order( 11, "Bob" );
+ final Order order2 = new Order( 11,
+ "Bob" );
final OrderItem item21 = new OrderItem( order2,
1 );
final OrderItem item22 = new OrderItem( order2,
2 );
order2.addItem( item21 );
order2.addItem( item22 );
- final Order order3 = new Order( 12, "Bob" );
+ final Order order3 = new Order( 12,
+ "Bob" );
final OrderItem item31 = new OrderItem( order3,
1 );
final OrderItem item32 = new OrderItem( order3,
2 );
order3.addItem( item31 );
order3.addItem( item32 );
- final Order order4 = new Order( 13, "Bob" );
+ final Order order4 = new Order( 13,
+ "Bob" );
final OrderItem item41 = new OrderItem( order4,
1 );
final OrderItem item42 = new OrderItem( order4,
@@ -3345,9 +3400,9 @@
public void testFunctionCallingFunctionWithEclipse() throws Exception {
PackageBuilderConfiguration packageBuilderConfig = new PackageBuilderConfiguration();
((JavaDialectConfiguration) packageBuilderConfig.getDialectConfiguration( "java" )).setCompiler( JavaDialectConfiguration.ECLIPSE );
-
+
final PackageBuilder builder = new PackageBuilder( packageBuilderConfig );
-
+
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_functionCallingFunction.drl" ) ) );
final Package pkg = builder.getPackage();
@@ -3363,14 +3418,15 @@
assertEquals( 1,
list.size() );
-
- assertEquals( 10, ( (Integer)list.get( 0 ) ).intValue() );
+
+ assertEquals( 10,
+ ((Integer) list.get( 0 )).intValue() );
}
-
+
public void testFunctionCallingFunctionWithJanino() throws Exception {
PackageBuilderConfiguration packageBuilderConfig = new PackageBuilderConfiguration();
((JavaDialectConfiguration) packageBuilderConfig.getDialectConfiguration( "java" )).setCompiler( JavaDialectConfiguration.JANINO );
-
+
final PackageBuilder builder = new PackageBuilder( packageBuilderConfig );
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_functionCallingFunction.drl" ) ) );
final Package pkg = builder.getPackage();
@@ -3387,10 +3443,11 @@
assertEquals( 1,
list.size() );
-
- assertEquals( 10, ( (Integer)list.get( 0 ) ).intValue() );
- }
+ assertEquals( 10,
+ ((Integer) list.get( 0 )).intValue() );
+ }
+
public void testSelfReference2() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_SelfReference2.drl" ) ) );
@@ -3862,19 +3919,21 @@
public void testNotInStatelessSession() throws Exception {
final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NotInStatelessSession.drl" )) );
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NotInStatelessSession.drl" ) ) );
final Package pkg = builder.getPackage();
RuleBaseConfiguration conf = new RuleBaseConfiguration();
conf.setSequential( true );
- final RuleBase ruleBase = getRuleBase(conf);
+ final RuleBase ruleBase = getRuleBase( conf );
ruleBase.addPackage( pkg );
StatelessSession session = ruleBase.newStatelessSession();
List list = new ArrayList();
- session.setGlobal( "list", list );
+ session.setGlobal( "list",
+ list );
session.execute( "not integer" );
- assertEquals("not integer", list.get( 0 ) );
+ assertEquals( "not integer",
+ list.get( 0 ) );
}
public void testDynamicallyAddInitialFactRule() throws Exception {
@@ -3888,12 +3947,14 @@
StatefulSession session = ruleBase.newStatefulSession();
List list = new ArrayList();
- session.setGlobal( "list", list );
+ session.setGlobal( "list",
+ list );
- session.insert( new Integer( 5) );
+ session.insert( new Integer( 5 ) );
session.fireAllRules();
- assertEquals( new Integer(5), list.get( 0 ) );
+ assertEquals( new Integer( 5 ),
+ list.get( 0 ) );
builder = new PackageBuilder();
rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\nthen\n list.add(\"x\");\nend";
@@ -3904,7 +3965,8 @@
// even though the first rule didn't use it.
ruleBase.addPackage( pkg );
- assertEquals( "x", list.get( 1 ) );
+ assertEquals( "x",
+ list.get( 1 ) );
}
@@ -3921,31 +3983,47 @@
workingMemory.setGlobal( "results",
list );
- final Order order1 = new Order( 10, "Bob" );
- final OrderItem item11 = new OrderItem( order1, 1 );
- final OrderItem item12 = new OrderItem( order1, 2 );
+ final Order order1 = new Order( 10,
+ "Bob" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
order1.addItem( item11 );
order1.addItem( item12 );
- final Order order2 = new Order( 11, "Bob" );
- final OrderItem item21 = new OrderItem( order2, 1 );
- final OrderItem item22 = new OrderItem( order2, 2 );
+ final Order order2 = new Order( 11,
+ "Bob" );
+ final OrderItem item21 = new OrderItem( order2,
+ 1 );
+ final OrderItem item22 = new OrderItem( order2,
+ 2 );
order2.addItem( item21 );
order2.addItem( item22 );
- final Order order3 = new Order( 12, "Bob" );
- final OrderItem item31 = new OrderItem( order3, 1 );
- final OrderItem item32 = new OrderItem( order3, 2 );
- final OrderItem item33 = new OrderItem( order3, 3 );
+ final Order order3 = new Order( 12,
+ "Bob" );
+ final OrderItem item31 = new OrderItem( order3,
+ 1 );
+ final OrderItem item32 = new OrderItem( order3,
+ 2 );
+ final OrderItem item33 = new OrderItem( order3,
+ 3 );
order3.addItem( item31 );
order3.addItem( item32 );
order3.addItem( item33 );
- final Order order4 = new Order( 13, "Bob" );
- final OrderItem item41 = new OrderItem( order4, 1 );
- final OrderItem item42 = new OrderItem( order4, 2 );
+ final Order order4 = new Order( 13,
+ "Bob" );
+ final OrderItem item41 = new OrderItem( order4,
+ 1 );
+ final OrderItem item42 = new OrderItem( order4,
+ 2 );
order4.addItem( item41 );
order4.addItem( item42 );
- final Order order5 = new Order( 14, "Mark" );
- final OrderItem item51 = new OrderItem( order5, 1 );
- final OrderItem item52 = new OrderItem( order5, 2 );
+ final Order order5 = new Order( 14,
+ "Mark" );
+ final OrderItem item51 = new OrderItem( order5,
+ 1 );
+ final OrderItem item52 = new OrderItem( order5,
+ 2 );
order5.addItem( item51 );
order5.addItem( item52 );
workingMemory.insert( order1 );
@@ -3969,18 +4047,26 @@
assertEquals( 9,
list.size() );
- int index=0;
- assertEquals( item11, list.get( index++ ) );
- assertEquals( item12, list.get( index++ ) );
- assertEquals( item21, list.get( index++ ) );
- assertEquals( item22, list.get( index++ ) );
- assertEquals( item31, list.get( index++ ) );
- assertEquals( item33, list.get( index++ ) );
- assertEquals( item41, list.get( index++ ) );
- assertEquals( order5, list.get( index++ ) );
- assertEquals( order5, list.get( index++ ) );
+ int index = 0;
+ assertEquals( item11,
+ list.get( index++ ) );
+ assertEquals( item12,
+ list.get( index++ ) );
+ assertEquals( item21,
+ list.get( index++ ) );
+ assertEquals( item22,
+ list.get( index++ ) );
+ assertEquals( item31,
+ list.get( index++ ) );
+ assertEquals( item33,
+ list.get( index++ ) );
+ assertEquals( item41,
+ list.get( index++ ) );
+ assertEquals( order5,
+ list.get( index++ ) );
+ assertEquals( order5,
+ list.get( index++ ) );
-
}
public void testImportColision() throws Exception {
@@ -4068,14 +4154,14 @@
final QueryResults results = workingMemory.getQueryResults( "collect objects" );
assertEquals( 1,
results.size() );
-
+
final QueryResult result = results.get( 0 );
final List list = (List) result.get( "$list" );
-
- assertEquals( 2,
+
+ assertEquals( 2,
list.size() );
}
-
+
public void testNestedAccessors() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NestedAccessors.drl" ) ) );
@@ -4089,36 +4175,42 @@
workingMemory.setGlobal( "results",
list );
- final Order order1 = new Order( 11, "Bob" );
- final OrderItem item11 = new OrderItem( order1, 1 );
- final OrderItem item12 = new OrderItem( order1, 2 );
+ final Order order1 = new Order( 11,
+ "Bob" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
order1.addItem( item11 );
order1.addItem( item12 );
-
+
workingMemory.insert( order1 );
workingMemory.insert( item11 );
workingMemory.insert( item12 );
-
+
workingMemory.fireAllRules();
-
+
assertEquals( 0,
list.size() );
-
- final Order order2 = new Order( 12, "Mark" );
+
+ final Order order2 = new Order( 12,
+ "Mark" );
Order.OrderStatus status = new Order.OrderStatus();
status.setActive( true );
order2.setStatus( status );
- final OrderItem item21 = new OrderItem( order2, 1 );
- final OrderItem item22 = new OrderItem( order2, 2 );
+ final OrderItem item21 = new OrderItem( order2,
+ 1 );
+ final OrderItem item22 = new OrderItem( order2,
+ 2 );
order1.addItem( item21 );
order1.addItem( item22 );
-
+
workingMemory.insert( order2 );
workingMemory.insert( item21 );
workingMemory.insert( item22 );
-
+
workingMemory.fireAllRules();
-
+
assertEquals( 2,
list.size() );
assertSame( item21,
@@ -4136,24 +4228,26 @@
ruleBase.addPackage( pkg );
final WorkingMemory wm = ruleBase.newStatefulSession();
-
+
try {
final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( wm );
logger.setFileName( "testLogger" );
wm.fireAllRules();
-
- wm.insert( new Cheese( "a", 10 ) );
- wm.insert( new Cheese( "b", 11 ) );
-
+
+ wm.insert( new Cheese( "a",
+ 10 ) );
+ wm.insert( new Cheese( "b",
+ 11 ) );
+
wm.fireAllRules();
-
-// logger.writeToDisk();
- } catch (Exception e) {
+
+ // logger.writeToDisk();
+ } catch ( Exception e ) {
e.printStackTrace();
- fail( "No exception should be raised ");
+ fail( "No exception should be raised " );
}
-
+
}
public void testFromNestedAccessors() throws Exception {
@@ -4169,21 +4263,24 @@
workingMemory.setGlobal( "results",
list );
- final Order order1 = new Order( 11, "Bob" );
- final OrderItem item11 = new OrderItem( order1, 1 );
- final OrderItem item12 = new OrderItem( order1, 2 );
+ final Order order1 = new Order( 11,
+ "Bob" );
+ final OrderItem item11 = new OrderItem( order1,
+ 1 );
+ final OrderItem item12 = new OrderItem( order1,
+ 2 );
order1.addItem( item11 );
order1.addItem( item12 );
-
+
workingMemory.insert( order1 );
workingMemory.insert( item11 );
workingMemory.insert( item12 );
-
+
workingMemory.fireAllRules();
-
+
assertEquals( 1,
list.size() );
-
+
assertSame( order1.getStatus(),
list.get( 0 ) );
}
@@ -4193,16 +4290,16 @@
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_SubNetworks.drl" ) ) );
final RuleBase ruleBase = getRuleBase();
-
+
try {
ruleBase.addPackage( builder.getPackage() );
- } catch (Exception e) {
+ } catch ( Exception e ) {
e.printStackTrace();
- fail( "Should not raise any exception!");
+ fail( "Should not raise any exception!" );
}
}
-
+
public void testFinalClass() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FinalClass.drl" ) ) );
@@ -4215,26 +4312,26 @@
final List list = new ArrayList();
workingMemory.setGlobal( "results",
list );
-
+
final PersonFinal bob = new PersonFinal();
bob.setName( "bob" );
bob.setStatus( null );
workingMemory.insert( bob );
-
+
workingMemory.fireAllRules();
-
+
assertEquals( 1,
list.size() );
// Dynamic addition of rules which use the final class are not supported yet
-// final PackageBuilder builder2 = new PackageBuilder();
-// builder2.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FinalClass2.drl" ) ) );
-// ruleBase.addPackage( builder2.getPackage() );
-//
-// // it will automatically fire the rule
-// assertEquals( 2,
-// list.size() );
+ // final PackageBuilder builder2 = new PackageBuilder();
+ // builder2.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FinalClass2.drl" ) ) );
+ // ruleBase.addPackage( builder2.getPackage() );
+ //
+ // // it will automatically fire the rule
+ // assertEquals( 2,
+ // list.size() );
}
public void testEvalRewriteMatches() throws Exception {
@@ -4250,7 +4347,8 @@
workingMemory.setGlobal( "results",
list );
- final Order order1 = new Order( 14, "Mark" );
+ final Order order1 = new Order( 14,
+ "Mark" );
final OrderItem item11 = new OrderItem( order1,
1 );
final OrderItem item12 = new OrderItem( order1,
@@ -4270,5 +4368,4 @@
assertTrue( list.contains( item12 ) );
}
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl 2007-10-05 18:49:42 UTC (rev 15609)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_globalCustomResolver.drl 2007-10-05 21:34:55 UTC (rev 15610)
@@ -11,4 +11,12 @@
eval( "stilton".equals( string ) )
then
list.add( new Integer(5) );
+end
+
+rule "global rule test with cheese"
+ when
+ Cheese( price == 100 );
+ eval( "stilton".equals( string ) )
+ then
+ list.add( new Integer(5) );
end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list