[jboss-svn-commits] JBL Code SVN: r23534 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/testframework and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 21 02:06:17 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-10-21 02:06:17 -0400 (Tue, 21 Oct 2008)
New Revision: 23534
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules_infinite_loop.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules2.drl
Log:
tightening tests to detect for infinite loops
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2008-10-21 05:50:31 UTC (rev 23533)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2008-10-21 06:06:17 UTC (rev 23534)
@@ -818,7 +818,81 @@
assertTrue(executionTrace.rulesFired.length > 0);
}
+
+
+ public void testIntegrationInfiniteLoop() throws Exception {
+ Scenario sc = new Scenario();
+ FactData[] facts = new FactData[]{new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "type",
+ "cheddar" ),
+ new FieldData( "price",
+ "42" ) ),
+ false )
+
+ };
+ sc.globals.add( new FactData( "Person",
+ "p",
+ new ArrayList(),
+ false ) );
+ sc.fixtures.addAll( Arrays.asList( facts ) );
+
+ ExecutionTrace executionTrace = new ExecutionTrace();
+
+ sc.rules.add( "rule1" );
+ sc.rules.add( "rule2" );
+ sc.inclusive = true;
+ sc.fixtures.add( executionTrace );
+
+ Expectation[] assertions = new Expectation[5];
+
+ assertions[0] = new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "cheddar",
+ "==" )
+
+ ) );
+
+ assertions[1] = new VerifyFact( "p",
+ ls( new VerifyField( "name",
+ "rule1",
+ "==" ),
+ new VerifyField( "status",
+ "rule2",
+ "==" ) )
+
+ );
+
+ assertions[2] = new VerifyRuleFired( "rule1",
+ 1,
+ null );
+ assertions[3] = new VerifyRuleFired( "rule2",
+ 1,
+ null );
+ assertions[4] = new VerifyRuleFired( "rule3",
+ 0,
+ null );
+
+ sc.fixtures.addAll( Arrays.asList( assertions ) );
+
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
+ resolver.addImport( "org.drools.Person" );
+
+ WorkingMemory wm = getWorkingMemory( "test_rules_infinite_loop.drl" );
+
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ (InternalWorkingMemory) wm );
+
+ assertEquals( sc.maxRuleFirings,
+ executionTrace.numberOfRulesFired.intValue() );
+
+
+ }
+
public void testIntegrationWithDeclaredTypes() throws Exception {
Scenario sc = new Scenario();
FactData[] facts = new FactData[]{new FactData( "Coolness",
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules2.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules2.drl 2008-10-21 05:50:31 UTC (rev 23533)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules2.drl 2008-10-21 06:06:17 UTC (rev 23534)
@@ -26,5 +26,3 @@
p.setAge(42);
end
-
-
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules_infinite_loop.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules_infinite_loop.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules_infinite_loop.drl 2008-10-21 06:06:17 UTC (rev 23534)
@@ -0,0 +1,16 @@
+package foo.bar
+
+import org.drools.Cheese
+import org.drools.Person
+
+global Person p
+
+rule "rule1"
+ when
+ c: Cheese()
+ then
+ insert(new Cheese());
+end
+
+
+
Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/testframework/test_rules_infinite_loop.drl
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list