@Test public void testForall2() throws Exception { KieBase kbase = loadKnowledgeBase("test_Forall2.drl"); KieSession ksession = createKnowledgeSession(kbase); final List<String> list = new ArrayList<String>(); ksession.setGlobal( "results", list ); final State state = new State( "SP" ); ksession.insert( state ); final Person bob = new Person( "Bob" ); bob.setStatus( state.getState() ); bob.setAlive( true ); ksession.insert( bob ); ksession.fireAllRules(); assertEquals( 0, list.size() ); final State qc = new State( "QC" ); ksession.insert( qc ); final Person john = new Person( "John" ); john.setStatus( qc.getState() ); john.setAlive( false ); ksession.fireAllRules(); assertEquals( 1, list.size() ); }
public class test { public static void main(String[] args) { List<Person> persons = new ArrayList<>(); // create a list to store the generated persons for (int i = 0; i < 20; i++) { Person person = new Person(); // generate a person person.setId(i); person.setAge(ThreadLocalRandom.current().nextInt(0, Person.MAX_AGE + 1)); person.setGender((Math.random() < 0.5)); person.setSexAppeal(ThreadLocalRandom.current().nextInt(0, Person.MAX_SEX_APPEAL + 1)); person.setAgressionLevel(ThreadLocalRandom.current().nextInt(0, Person.MAX_SEX_APPEAL + 1)); person.setStrength(ThreadLocalRandom.current().nextInt(0, Person.MAX_SEX_APPEAL + 1)); person.setAlive(true); persons.add(person); /// add the generated person to the list } } }
@Test public void testNPEOnParenthesis() throws Exception { KnowledgeBase kbase = loadKnowledgeBase( "test_ParenthesisUsage.drl" ); final List<Person> results = new ArrayList<Person>(); final StatefulKnowledgeSession session = createKnowledgeSession( kbase ); session.setGlobal( "results", results ); Person bob = new Person( "Bob", 20 ); bob.setAlive( true ); Person foo = new Person( "Foo", 0 ); foo.setAlive( false ); session.insert( bob ); session.fireAllRules(); assertEquals( 1, results.size() ); assertEquals( bob, results.get( 0 ) ); session.insert( foo ); session.fireAllRules(); assertEquals( 2, results.size() ); assertEquals( foo, results.get( 1 ) ); }
@Test public void testConstraintConnectorOr() throws Exception { final KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_ConstraintConnectorOr.drl" ) ); final StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); List<Person> results = new ArrayList<Person>(); ksession.setGlobal( "results", results ); final Person mark = new Person( "Mark" ); mark.setAlive( true ); mark.setHappy( true ); final Person bush = new Person( "Bush" ); bush.setAlive( true ); bush.setHappy( false ); final Person conan = new Person( "Conan" ); conan.setAlive( false ); conan.setHappy( true ); final Person nero = new Person( "Nero" ); nero.setAlive( false ); nero.setHappy( false ); ksession.insert( mark ); ksession.insert( bush ); ksession.insert( conan ); ksession.insert( nero ); ksession.fireAllRules(); assertEquals( 3, results.size() ); assertTrue( results.contains( mark ) ); assertTrue( results.contains( bush ) ); assertTrue( results.contains( conan ) ); }
@Test public void testMethodConstraint() { String str = "package org.drools.compiler\n" + "rule \"test\"\n" + "when\n" + " Person( isAlive() );\n" + "then\n" + "end"; KnowledgeBase kbase = loadKnowledgeBaseFromString( str ); StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); Person person = new Person( "Bob" ); person.setAlive( true ); ksession.insert( person ); int rules = ksession.fireAllRules(); assertEquals( 1, rules ); }