public class AlwaysTruePatternTest extends TestBaseOld {
@Test @Ignore
public void testPatternPossibilities() throws Exception {
StatelessSession session = getStatelessSession( this.getClass().getResourceAsStream( "Patterns.drl" ) );
session.setAgendaFilter( new RuleNameMatchesAgendaFilter( "Pattern possibility that is always true" ) );
VerifierReport result = VerifierReportFactory.newVerifierReport();
Collection<Object> data = new ArrayList<Object>();
session.setGlobal( "result",
result );
// This pattern is always true.
Pattern pattern1 = VerifierComponentMockFactory.createPattern1();
Restriction r1 = LiteralRestriction.createRestriction( pattern1,
"" );
Restriction r2 = LiteralRestriction.createRestriction( pattern1,
"" );
Opposites o1 = new Opposites( r1,
r2 );
SubPattern pp1 = new SubPattern( pattern1,
0 );
pp1.add( r1 );
pp1.add( r2 );
Restriction r3 = new VariableRestriction( pattern1 );
Restriction r4 = new VariableRestriction( pattern1 );
Opposites o2 = new Opposites( r1,
r2 );
SubPattern pp2 = new SubPattern( pattern1,
1 );
pp2.add( r1 );
pp2.add( r2 );
// This pattern is okay.
Pattern pattern2 = VerifierComponentMockFactory.createPattern2();
Restriction r5 = LiteralRestriction.createRestriction( pattern2,
"" );
Restriction r6 = LiteralRestriction.createRestriction( pattern2,
"" );
SubPattern pp3 = new SubPattern( pattern2,
0 );
pp3.add( r5 );
pp3.add( r6 );
Restriction r7 = new VariableRestriction( pattern2 );
Restriction r8 = new VariableRestriction( pattern2 );
Opposites o4 = new Opposites( r7,
r8 );
SubPattern pp4 = new SubPattern( pattern2,
1 );
pp4.add( r7 );
pp4.add( r8 );
data.add( pattern1 );
data.add( r1 );
data.add( r2 );
data.add( r3 );
data.add( r4 );
data.add( o1 );
data.add( o2 );
data.add( pp1 );
data.add( pp2 );
data.add( pattern2 );
data.add( r5 );
data.add( r6 );
data.add( r7 );
data.add( r8 );
data.add( o4 );
data.add( pp3 );
data.add( pp4 );
StatelessSessionResult sessionResult = session.executeWithResults( data );
Iterator iter = sessionResult.iterateObjects();
boolean pp1true = false;
boolean pp2true = false;
boolean pp3true = false;