[jboss-svn-commits] JBL Code SVN: r31801 - in labs/jbossrules/trunk/drools-verifier/src: main/java/org/drools/verifier/builder and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 23 06:59:06 EST 2010


Author: Rikkola
Date: 2010-02-23 06:59:05 -0500 (Tue, 23 Feb 2010)
New Revision: 31801

Modified:
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java
   labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java
   labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java
Log:
Finding incoherent restrictions had a bug. Was not able to compare two booleans as restriction types.

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java	2010-02-23 11:53:27 UTC (rev 31800)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/DefaultVerifierConfiguration.java	2010-02-23 11:59:05 UTC (rev 31801)
@@ -9,7 +9,6 @@
         verifyingResources.put( ResourceFactory.newClassPathResource( "scope-knowledge-package.xml",
                                                                       getClass() ),
                                 ResourceType.CHANGE_SET );
-        //        verifyingResources.putAll( RuleLoader.basicRulesForFullKnowledgeBase( getClass() ) );
         verifyingScopes.add( VERIFYING_SCOPE_SINGLE_RULE );
         verifyingScopes.add( VERIFYING_SCOPE_DECISION_TABLE );
         verifyingScopes.add( VERIFYING_SCOPE_KNOWLEDGE_PACKAGE );

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java	2010-02-23 11:53:27 UTC (rev 31800)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilder.java	2010-02-23 11:59:05 UTC (rev 31801)
@@ -19,4 +19,5 @@
     boolean hasErrors();
 
     List<VerifierBuilderError> getErrors();
+
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java	2010-02-23 11:53:27 UTC (rev 31800)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierBuilderImpl.java	2010-02-23 11:59:05 UTC (rev 31801)
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.drools.verifier.DefaultVerifierConfiguration;
 import org.drools.verifier.Verifier;
 import org.drools.verifier.VerifierConfiguration;
 import org.drools.verifier.VerifierConfigurationImpl;
@@ -38,4 +39,5 @@
     public boolean hasErrors() {
         return !errors.isEmpty();
     }
+
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java	2010-02-23 11:53:27 UTC (rev 31800)
+++ labs/jbossrules/trunk/drools-verifier/src/main/java/org/drools/verifier/components/LiteralRestriction.java	2010-02-23 11:59:05 UTC (rev 31801)
@@ -46,9 +46,9 @@
             throw new DataFormatException( "Value types did not match. Value type " + restriction.getValueType() + " was compared to " + valueType );
         }
 
-        if ( valueType == Field.DATE ) {
+        if ( Field.DATE.equals( valueType ) ) {
             return dateValue.compareTo( restriction.getDateValue() );
-        } else if ( valueType == Field.DOUBLE ) {
+        } else if ( Field.DOUBLE.equals( valueType ) ) {
             if ( doubleValue > restriction.getDoubleValue() ) {
                 return 1;
             } else if ( doubleValue < restriction.getDoubleValue() ) {
@@ -56,7 +56,7 @@
             } else {
                 return 0;
             }
-        } else if ( valueType == Field.INT ) {
+        } else if ( Field.INT.equals( valueType ) ) {
             if ( intValue > restriction.getIntValue() ) {
                 return 1;
             } else if ( intValue < restriction.getIntValue() ) {
@@ -64,9 +64,15 @@
             } else {
                 return 0;
             }
-        } else if ( valueType == Field.STRING ) {
+        } else if ( Field.BOOLEAN.equals( valueType ) ) {
+            if ( booleanValue == restriction.getBooleanValue() ) {
+                return 0;
+            } else {
+                return 1;
+            }
+        } else if ( Field.STRING.equals( valueType ) ) {
             return stringValue.compareTo( restriction.getValueAsString() );
-        } else if ( valueType == Field.UNKNOWN ) {
+        } else if ( Field.UNKNOWN.equals( valueType ) ) {
             return 0;
         }
 

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java	2010-02-23 11:53:27 UTC (rev 31800)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/VerifierTest.java	2010-02-23 11:59:05 UTC (rev 31801)
@@ -1,6 +1,7 @@
 package org.drools.verifier;
 
 import java.io.IOException;
+import java.io.StringReader;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.jar.JarInputStream;
@@ -8,7 +9,9 @@
 import junit.framework.TestCase;
 
 import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
 import org.drools.io.impl.ClassPathResource;
+import org.drools.io.impl.ReaderResource;
 import org.drools.verifier.builder.VerifierBuilder;
 import org.drools.verifier.builder.VerifierBuilderFactory;
 import org.drools.verifier.components.Field;

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java	2010-02-23 11:53:27 UTC (rev 31800)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentPatternsTest.java	2010-02-23 11:59:05 UTC (rev 31801)
@@ -1,5 +1,6 @@
 package org.drools.verifier.incoherence;
 
+import java.io.StringReader;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -7,7 +8,14 @@
 
 import org.drools.StatelessSession;
 import org.drools.base.RuleNameMatchesAgendaFilter;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.verifier.DefaultVerifierConfiguration;
 import org.drools.verifier.TestBase;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.builder.VerifierBuilder;
+import org.drools.verifier.builder.VerifierBuilderFactory;
 import org.drools.verifier.components.VerifierRule;
 import org.drools.verifier.data.VerifierReport;
 import org.drools.verifier.data.VerifierReportFactory;
@@ -22,328 +30,283 @@
  */
 public class IncoherentPatternsTest extends TestBase {
 
-	public void testIncoherentPatternsInSubRule() throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRule() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Incoherent Patterns in rule possibility"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 1"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 2"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 7"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 1" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 2" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 7" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 
-	public void testIncoherentPatternsInSubRuleVariables()
-			throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRuleVariables() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-				"Incoherent Patterns in rule possibility, variables"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility, variables" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 3"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 4"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 5"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 6"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 3" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 4" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 5" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 6" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 
-	public void testIncoherentPatternsInSubRuleRangesLess()
-			throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRuleRangesLess() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session
-				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-						"Incoherent Patterns in rule possibility, ranges when not conflicts with lesser value"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility, ranges when not conflicts with lesser value" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 8"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 12"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 8" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 12" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 
-	public void testIncoherentPatternsInSubRuleRangesGreater()
-			throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRuleRangesGreater() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session
-				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-						"Incoherent Patterns in rule possibility, ranges when not conflicts with greater value"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility, ranges when not conflicts with greater value" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 9"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 14"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 9" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 14" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 
-	public void testIncoherentPatternsInSubRuleRangesEqualOrUnequal()
-			throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRuleRangesEqualOrUnequal() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session
-				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal value"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal value" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 10"));
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 15"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 10" ) );
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 15" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 
-	public void testIncoherentPatternsInSubRuleRangesEqualOrUnequalVariables()
-			throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRuleRangesEqualOrUnequalVariables() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session
-				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal variables"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility, ranges when not conflicts with equal or unequal variables" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 11"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 11" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 
-	public void testIncoherentPatternsInSubRuleRangesEqualValue()
-			throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRuleRangesEqualValue() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session
-				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal value"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility, ranges when not conflicts with equal value" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 16"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 16" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 
-	public void testIncoherentPatternsInSubRuleRangesEqualVariable()
-			throws Exception {
-		StatelessSession session = getStatelessSession(this.getClass()
-				.getResourceAsStream("Patterns.drl"));
+    public void testIncoherentPatternsInSubRuleRangesEqualVariable() throws Exception {
+        StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
 
-		session
-				.setAgendaFilter(new RuleNameMatchesAgendaFilter(
-						"Incoherent Patterns in rule possibility, ranges when not conflicts with equal variable"));
+        session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Incoherent Patterns in rule possibility, ranges when not conflicts with equal variable" ) );
 
-		VerifierReport result = VerifierReportFactory.newVerifierReport();
-		Collection<? extends Object> testData = getTestData(this.getClass()
-				.getResourceAsStream("PatternsTest.drl"), result
-				.getVerifierData());
+        VerifierReport result = VerifierReportFactory.newVerifierReport();
+        Collection< ? extends Object> testData = getTestData( this.getClass().getResourceAsStream( "PatternsTest.drl" ),
+                                                              result.getVerifierData() );
 
-		session.setGlobal("result", result);
+        session.setGlobal( "result",
+                           result );
 
-		session.executeWithResults(testData);
+        session.executeWithResults( testData );
 
-		Iterator<VerifierMessageBase> iter = result.getBySeverity(
-				Severity.WARNING).iterator();
+        Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.WARNING ).iterator();
 
-		Set<String> rulesThatHadErrors = new HashSet<String>();
-		while (iter.hasNext()) {
-			Object o = (Object) iter.next();
-			if (o instanceof VerifierMessage) {
-				VerifierRule rule = (VerifierRule) ((VerifierMessage) o)
-						.getFaulty();
-				rulesThatHadErrors.add(rule.getRuleName());
-			}
-		}
+        Set<String> rulesThatHadErrors = new HashSet<String>();
+        while ( iter.hasNext() ) {
+            Object o = (Object) iter.next();
+            if ( o instanceof VerifierMessage ) {
+                VerifierRule rule = (VerifierRule) ((VerifierMessage) o).getFaulty();
+                rulesThatHadErrors.add( rule.getRuleName() );
+            }
+        }
 
-		assertTrue(rulesThatHadErrors.remove("Incoherent patterns 13"));
+        assertTrue( rulesThatHadErrors.remove( "Incoherent patterns 13" ) );
 
-		if (!rulesThatHadErrors.isEmpty()) {
-			for (String string : rulesThatHadErrors) {
-				fail("Rule " + string + " caused an error.");
-			}
-		}
-	}
+        if ( !rulesThatHadErrors.isEmpty() ) {
+            for ( String string : rulesThatHadErrors ) {
+                fail( "Rule " + string + " caused an error." );
+            }
+        }
+    }
 }

Modified: labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java	2010-02-23 11:53:27 UTC (rev 31800)
+++ labs/jbossrules/trunk/drools-verifier/src/test/java/org/drools/verifier/incoherence/IncoherentRestrictionsTest.java	2010-02-23 11:59:05 UTC (rev 31801)
@@ -1,5 +1,6 @@
 package org.drools.verifier.incoherence;
 
+import java.io.StringReader;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -7,7 +8,14 @@
 
 import org.drools.StatelessSession;
 import org.drools.base.RuleNameMatchesAgendaFilter;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.verifier.DefaultVerifierConfiguration;
 import org.drools.verifier.TestBase;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.builder.VerifierBuilder;
+import org.drools.verifier.builder.VerifierBuilderFactory;
 import org.drools.verifier.components.Pattern;
 import org.drools.verifier.data.VerifierReport;
 import org.drools.verifier.data.VerifierReportFactory;
@@ -22,6 +30,52 @@
  */
 public class IncoherentRestrictionsTest extends TestBase {
 
+    public void testApprovedTrueAndNotTrue() {
+        VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
+
+        // Check that the builder works.
+        assertFalse( vBuilder.hasErrors() );
+        assertEquals( 0,
+                      vBuilder.getErrors().size() );
+
+        String str = "";
+        str += "package mortgages\n";
+        str += "rule \"Bankruptcy history\"\n";
+        str += "salience 10\n";
+        str += "dialect \"mvel\"\n";
+        str += "when\n";
+        str += "Applicant( approved == \"true\" , approved != \"true\" )\n";
+        str += "then\n";
+        str += "end";
+
+        DefaultVerifierConfiguration conf = new DefaultVerifierConfiguration();
+        conf.getVerifyingScopes().clear();
+        conf.getVerifyingScopes().add( VerifierConfiguration.VERIFYING_SCOPE_KNOWLEDGE_PACKAGE );
+        conf.setAcceptRulesWithoutVerifiyingScope( true );
+        Verifier verifier = VerifierBuilderFactory.newVerifierBuilder().newVerifier( conf );
+        verifier.addResourcesToVerify( ResourceFactory.newReaderResource( new StringReader( str ) ),
+                                       ResourceType.DRL );
+
+        assertFalse( verifier.hasErrors() );
+        assertEquals( 0,
+                      verifier.getErrors().size() );
+
+        boolean works = verifier.fireAnalysis();
+
+        assertTrue( works );
+
+        VerifierReport result = verifier.getResult();
+        assertNotNull( result );
+
+        assertEquals( 3,
+                      result.getBySeverity( Severity.ERROR ).size() );
+        assertEquals( 1,
+                      result.getBySeverity( Severity.WARNING ).size() );
+        assertEquals( 0,
+                      result.getBySeverity( Severity.NOTE ).size() );
+
+    }
+
     public void testIncoherentLiteralRestrictionsInSubPattern() throws Exception {
         StatelessSession session = getStatelessSession( getClass().getResourceAsStream( "Restrictions.drl" ) );
 



More information about the jboss-svn-commits mailing list