From: <jbo...@li...> - 2006-04-21 15:01:58
|
Author: tirelli Date: 2006-04-21 11:01:45 -0400 (Fri, 21 Apr 2006) New Revision: 3887 Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsNot.drl Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java Log: JBRULES-233: * Adding another integration test on LogicalAssertions Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java =================================================================== --- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-04-21 14:47:25 UTC (rev 3886) +++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-04-21 15:01:45 UTC (rev 3887) @@ -1570,6 +1570,45 @@ assertEquals("Exactly six events", 6, events.size()); } + public void xxxtestLogicalAssertionsNot() throws Exception { + PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalAssertionsNot.drl" ) ) ); + Package pkg = builder.getPackage(); + + RuleBase ruleBase = getRuleBase(); + ruleBase.addPackage( pkg ); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + List list; + + String a = new String("a"); + Integer i = new Integer(1); + workingMemory.setGlobal( "i", i ); + + workingMemory.fireAllRules(); + list = workingMemory.getObjects(); + assertEquals("i was not asserted by not a => i.", 1, list.size()); + assertEquals("i was not asserted by not a => i.", i, list.get(0)); + + FactHandle h = workingMemory.assertObject(a); + //no need to fire rules, assertion alone removes justification for i, so it should be retracted. + //workingMemory.fireAllRules(); + list = workingMemory.getObjects(); + assertEquals("a was not asserted or i not retracted.", 1, list.size()); + assertEquals("a was asserted.", a, list.get(0)); + assertFalse("i was not rectracted.", list.contains(i)); + + //no rules should fire, but nevertheless... + //workingMemory.fireAllRules(); + assertEquals("agenda should be empty.", 0, workingMemory.getAgenda().agendaSize()); + + workingMemory.retractObject(h); + workingMemory.fireAllRules(); + list = workingMemory.getObjects(); + assertEquals("i was not asserted by not a => i.", 1, list.size()); + assertEquals("i was not asserted by not a => i.", i, list.get(0)); + } + private Object serializeIn(byte[] bytes) throws IOException, ClassNotFoundException { ObjectInput in = new ObjectInputStream( new ByteArrayInputStream( bytes ) ); Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsNot.drl =================================================================== --- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsNot.drl 2006-04-21 14:47:25 UTC (rev 3886) +++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsNot.drl 2006-04-21 15:01:45 UTC (rev 3887) @@ -0,0 +1,13 @@ +package org.drools.test; + +import java.lang.String; +import java.lang.Integer; + +global java.lang.Integer i; + +rule "r" + when + not String() + then + assertLogical(i); +end \ No newline at end of file Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsNot.drl ___________________________________________________________________ Name: svn:executable + * Name: svn:eol-style + native |