result.getBySeverity( Severity.NOTE ).size() );
}
@Test
public void testRules() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Rules.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Rule that is always false" ) );
VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<Object> data = new ArrayList<Object>();
session.setGlobal( "result",
result );
// This rule has an error.
VerifierRule rule1 = VerifierComponentMockFactory.createRule1();
Pattern pattern1 = VerifierComponentMockFactory.createPattern1();
SubPattern pp1 = new SubPattern( pattern1,
0 );
SubPattern pp2 = new SubPattern( pattern1,
1 );
Incompatibility i1 = new Incompatibility( pp1,
pp2 );
SubRule rp1 = new SubRule( rule1,
0 );
rp1.add( pp1 );
rp1.add( pp2 );
SubPattern pp3 = new SubPattern( pattern1,
2 );
SubPattern pp4 = new SubPattern( pattern1,
3 );
Incompatibility i2 = new Incompatibility( pp1,
pp2 );
SubRule rp2 = new SubRule( rule1,
1 );
rp2.add( pp1 );
rp2.add( pp2 );
// This pattern does not have an error.
VerifierRule rule2 = VerifierComponentMockFactory.createRule2();
Pattern pattern2 = VerifierComponentMockFactory.createPattern2();
SubPattern pp5 = new SubPattern( pattern2,
0 );
SubPattern pp6 = new SubPattern( pattern2,
1 );
SubRule rp3 = new SubRule( rule2,
2 );
rp3.add( pp5 );
rp3.add( pp6 );
SubPattern pp7 = new SubPattern( pattern2,
2 );
SubPattern pp8 = new SubPattern( pattern2,
3 );
Incompatibility i4 = new Incompatibility( pp7,
pp8 );
SubRule rp4 = new SubRule( rule2,
3 );
rp4.add( pp7 );
rp4.add( pp8 );
data.add( rule1 );
data.add( pp1 );
data.add( pp2 );
data.add( pp3 );
data.add( pp4 );
data.add( i1 );
data.add( i2 );
data.add( rp1 );
data.add( rp2 );
data.add( rule2 );
data.add( pp5 );
data.add( pp6 );
data.add( pp7 );
data.add( pp8 );
data.add( i4 );
data.add( rp3 );
data.add( rp4 );
session.executeWithResults( data );
Iterator<VerifierMessageBase> iter = result.getBySeverity( Severity.ERROR ).iterator();
boolean works = false;
while ( iter.hasNext() ) {