[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