예제 #1
0
  /**
   * 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);
  }
예제 #2
0
  @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);
  }
예제 #3
0
  @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 )"));
  }
예제 #4
0
  @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);
  }