/** * This checks that if the rule has "nil" salience, then no salience value should be put in the * rule definition. This allows default salience to work as advertised. */ @Test public void testNilSalience() { Rule rule = new Rule("MyRule", null, 1); DRLOutput out = new DRLOutput(); rule.renderDRL(out); String xml = out.toString(); int idx = xml.indexOf("salience"); assertEquals(-1, idx); rule = new Rule("MyRule", new Integer(42), 1); out = new DRLOutput(); rule.renderDRL(out); xml = out.toString(); idx = xml.indexOf("salience"); assertTrue(idx > -1); }
@Test public void testNotEscapeChars() { // bit of a legacy from the olde XML dayes of yesteryeare final Condition cond = new Condition(); cond.setSnippet("a < b"); final DRLOutput out = new DRLOutput(); cond.renderDRL(out); assertTrue(out.toString().indexOf("a < b") != -1); }
@Test public void testMetadata() throws Exception { Rule rule = new Rule("la", new Integer(42), 2); rule.addMetadata("Author( A. U. Thor )"); rule.addMetadata("Revision( 42 )"); DRLOutput out = new DRLOutput(); rule.renderDRL(out); String result = out.toString(); assertTrue(result.contains("@Author( A. U. Thor )")); assertTrue(result.contains("@Revision( 42 )")); }
@Test public void testAttributes() throws Exception { Rule rule = new Rule("la", new Integer(42), 2); rule.setActivationGroup("foo"); rule.setNoLoop(true); rule.setRuleFlowGroup("ruleflowgroup"); rule.setDuration(42L); DRLOutput out = new DRLOutput(); rule.renderDRL(out); String result = out.toString(); assertTrue(result.indexOf("ruleflow-group \"ruleflowgroup\"") > -1); assertTrue(result.indexOf("no-loop true") > -1); assertTrue(result.indexOf("activation-group \"foo\"") > -1); assertTrue(result.indexOf("duration 42") > -1); }