6

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?

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

2 Answers2

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
1

Consider some testing 'sugar' with a Junit TestRule library - droolsassert.

Mike
  • 20,010
  • 25
  • 97
  • 140