I have written a few Drools rules for my Seam application and am wondering how I go about unit testing these. Does anybody have any sample code that can show me how to go about doing this?
Asked
Active
Viewed 6,252 times
6
-
1I have actually figured this out for myself. Just wanted to contribute the question, and also the answer to the site for anyone else wondering about this. – Aaron Chambers Jul 30 '09 at 12:58
-
2so answer your own question. You might get a self-learner badge ;) – Samuel Carrijo Jul 30 '09 at 13:05
-
1@samuelcarrijo - I meant to, just forgot. Thanks for the reminder ;) – Aaron Chambers Jul 30 '09 at 13:33
-
1Now if you guys could only up vote the answer I can get that badge ;) – Aaron Chambers Jul 31 '09 at 10:33
2 Answers
7
Add the following code to a unit test (JUnit, TestNG, etc):
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl(new InputStreamReader(getClass().getResourceAsStream( "rules.drl")));
PackageBuilderErrors errors = builder.getErrors();
Assert.assertEquals(0, errors.getErrors().length);
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(pkg);
StatefullSession session = ruleBase.newStatefulSession(false);
MyFactObject myFact = new MyFactObject();
session.insert(myFact);
session.fireAllRules();

Aaron Chambers
- 1,354
- 2
- 12
- 27