private void doComplexWorksheetMissingConditions() throws IOException { final InputStream stream = RuleWorksheetParseTest.class.getResourceAsStream("/data/ComplexWorkbook.xls"); final RuleSheetListener listener = getRuleSheetListener(stream); final Package ruleset = listener.getRuleSet(); assertEquals(6, ruleset.getRules().size()); assertEquals(0, ruleset.getImports().size()); Rule rule = (Rule) ruleset.getRules().get(0); assertEquals(3, rule.getConditions().size()); assertEquals(2, rule.getConsequences().size()); final Consequence cons = (Consequence) rule.getConsequences().get(1); assertEquals("myObject.setIsValid(1, 2)", cons.getSnippet()); final Condition con = (Condition) rule.getConditions().get(2); assertEquals("myObject.size() < $3.00", con.getSnippet()); rule = (Rule) ruleset.getRules().get(4); // this should have less conditions assertEquals(1, rule.getConditions().size()); rule = (Rule) ruleset.getRules().get(5); assertEquals(2, rule.getConditions().size()); assertEquals(1, rule.getConsequences().size()); }
@Test public void testWorkbookParse() throws Exception { final InputStream stream = RuleWorksheetParseTest.class.getResourceAsStream("/data/BasicWorkbook.xls"); final RuleSheetListener listener = getRuleSheetListener(stream); final Package ruleset = listener.getRuleSet(); assertNotNull(ruleset); final Rule firstRule = (Rule) ruleset.getRules().get(0); assertNotNull(firstRule.getSalience()); assertTrue(Integer.parseInt(firstRule.getSalience()) > 0); // System.out.println(ruleset.toXML()); assertEquals("myruleset", ruleset.getName()); assertEquals(3, ruleset.getImports().size()); assertEquals(6, ruleset.getRules().size()); // check imports Import imp = (Import) ruleset.getImports().get(0); assertEquals("blah.class1", imp.getClassName()); imp = (Import) ruleset.getImports().get(1); assertEquals("blah.class2", imp.getClassName()); imp = (Import) ruleset.getImports().get(2); assertEquals("lah.di.dah", imp.getClassName()); // check rules Rule rule = (Rule) ruleset.getRules().get(0); Condition cond = (Condition) rule.getConditions().get(0); assertEquals( "Foo(myObject.getColour().equals(red), myObject.size () > 12\\\")", cond.getSnippet()); Consequence cons = (Consequence) rule.getConsequences().get(0); assertNotNull(cons); assertEquals("myObject.setIsValid(Y);", cons.getSnippet()); rule = (Rule) ruleset.getRules().get(5); cond = (Condition) rule.getConditions().get(1); assertEquals("myObject.size () > 7", cond.getSnippet()); cons = (Consequence) rule.getConsequences().get(0); assertEquals("myObject.setIsValid(10-Jul-1974)", cons.getSnippet()); }
@Test public void testQuoteEscapingDisabled() throws Exception { final InputStream stream = RuleWorksheetParseTest.class.getResourceAsStream("/data/QuoteEscapeDisabledWorkbook.xls"); final RuleSheetListener listener = getRuleSheetListener(stream); final Package ruleset = listener.getRuleSet(); assertNotNull(ruleset); DRLOutput dout = new DRLOutput(); ruleset.renderDRL(dout); String drl = dout.getDRL(); System.out.println(drl); // check rules Rule rule = (Rule) ruleset.getRules().get(0); Condition cond = (Condition) rule.getConditions().get(0); assertEquals( "Foo(myObject.getColour().equals(red), myObject.size () > \"12\")", cond.getSnippet()); rule = (Rule) ruleset.getRules().get(1); cond = (Condition) rule.getConditions().get(0); assertEquals( "Foo(myObject.getColour().equals(blue), myObject.size () > 12\")", cond.getSnippet()); }
@Test public void testNumericDisabled() throws Exception { // DROOLS-1378 final InputStream stream = RuleWorksheetParseTest.class.getResourceAsStream("/data/NumericDisabled.xls"); final RuleSheetListener listener = getRuleSheetListener(stream); final Package ruleset = listener.getRuleSet(); assertNotNull(ruleset); DRLOutput dout = new DRLOutput(); ruleset.renderDRL(dout); String drl = dout.getDRL(); System.out.println(drl); // check rules Rule rule = (Rule) ruleset.getRules().get(0); Condition cond = (Condition) rule.getConditions().get(0); assertEquals("Cheese(price == 6600)", cond.getSnippet()); }