Package org.drools.guvnor.modeldriven.dt

Source Code of org.drools.guvnor.modeldriven.dt.GuidedDecisionTableTest

package org.drools.guvnor.modeldriven.dt;

import java.util.HashMap;

import junit.framework.TestCase;

import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
import org.drools.guvnor.client.modeldriven.brl.ISingleFieldConstraint;
import org.drools.guvnor.client.modeldriven.dt.ActionInsertFactCol;
import org.drools.guvnor.client.modeldriven.dt.ActionSetFieldCol;
import org.drools.guvnor.client.modeldriven.dt.AttributeCol;
import org.drools.guvnor.client.modeldriven.dt.ConditionCol;
import org.drools.guvnor.client.modeldriven.dt.GuidedDecisionTable;

public class GuidedDecisionTableTest extends TestCase {

//  public void testGetCol() {
//    GuidedDecisionTable dt = new GuidedDecisionTable();
//    AttributeCol at1 = new AttributeCol();
//    ConditionCol condition1 = new ConditionCol();
//    ActionCol action1 = new ActionInsertFactCol();
//    dt.attributeCols.add(at1);
//    dt.conditionCols.add(condition1);
//    dt.actionCols.add(action1);
//
//    assertEquals(at1, dt.getColumnConfiguration(0));
//    assertEquals(condition1, dt.getColumnConfiguration(1));
//    assertEquals(action1, dt.getColumnConfiguration(2));
//
//
//    AttributeCol at2 = new AttributeCol();
//    dt.attributeCols.add(at2);
//    assertEquals(at1, dt.getColumnConfiguration(0));
//    assertEquals(at2, dt.getColumnConfiguration(1));
//    assertEquals(condition1, dt.getColumnConfiguration(2));
//    assertEquals(action1, dt.getColumnConfiguration(3));
//
//    ConditionCol condition2 = new ConditionCol();
//    dt.conditionCols.add(condition2);
//
//    assertEquals(at1, dt.getColumnConfiguration(0));
//    assertEquals(at2, dt.getColumnConfiguration(1));
//    assertEquals(condition1, dt.getColumnConfiguration(2));
//    assertEquals(condition2, dt.getColumnConfiguration(3));
//    assertEquals(action1, dt.getColumnConfiguration(4));
//
//    ActionCol action2 = new ActionInsertFactCol();
//    dt.actionCols.add(action2);
//    assertEquals(at1, dt.getColumnConfiguration(0));
//    assertEquals(at2, dt.getColumnConfiguration(1));
//    assertEquals(condition1, dt.getColumnConfiguration(2));
//    assertEquals(condition2, dt.getColumnConfiguration(3));
//    assertEquals(action1, dt.getColumnConfiguration(4));
//    assertEquals(action2, dt.getColumnConfiguration(5));
//
//
//
//    dt.attributeCols = new ArrayList();
//    assertEquals(condition1, dt.getColumnConfiguration(0));
//    assertEquals(condition2, dt.getColumnConfiguration(1));
//    assertEquals(action1, dt.getColumnConfiguration(2));
//    assertEquals(action2, dt.getColumnConfiguration(3));
//
//    dt.conditionCols = new ArrayList();
//    assertEquals(action1, dt.getColumnConfiguration(0));
//    assertEquals(action2, dt.getColumnConfiguration(1));
//
//
//
//
//
//
//  }

  public void testValueLists() {
    GuidedDecisionTable dt = new GuidedDecisionTable();

    //add cols for LHS
    ConditionCol c1 = new ConditionCol();
    c1.boundName = "c1";
    c1.factType = "Driver";
    c1.factField = "name";
    c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    dt.conditionCols.add(c1);

    ConditionCol c1_ = new ConditionCol();
    c1_.boundName = "c1";
    c1_.factType = "Driver";
    c1_.factField = "name";
    c1_.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;

    dt.conditionCols.add(c1_);

    ConditionCol c1__ = new ConditionCol();
    c1__.boundName = "c1";
    c1__.factType = "Driver";
    c1__.factField = "name";
    c1__.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    c1__.valueList = "one,two,three";
    dt.conditionCols.add(c1__);

    ConditionCol c2 = new ConditionCol();
    c2.boundName = "c2";
    c2.factType = "Driver";
    c2.factField = "nothing";
    c2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    dt.conditionCols.add(c2);


    ActionSetFieldCol asf = new ActionSetFieldCol();
    asf.boundName = "c1";
    asf.factField = "name";
    dt.actionCols.add(asf);

    ActionInsertFactCol ins = new ActionInsertFactCol();
    ins.boundName = "x";
    ins.factField = "rating";
    ins.factType = "Person";
    dt.actionCols.add(ins);

    ActionInsertFactCol ins_ = new ActionInsertFactCol();
    ins_.boundName = "x";
    ins_.factField = "rating";
    ins_.factType = "Person";
    ins_.valueList = "one,two,three";
    dt.actionCols.add(ins_);

    ActionSetFieldCol asf_ = new ActionSetFieldCol();
    asf_.boundName = "c1";
    asf_.factField = "goo";
    dt.actionCols.add(asf_);

    ActionSetFieldCol asf__ = new ActionSetFieldCol();
    asf__.boundName = "c1";
    asf__.factField = "goo";
    asf__.valueList = "one,two,three";
    dt.actionCols.add(asf__);


    SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
    sce.dataEnumLists.put("Driver.name", new String[] {"bob", "michael"});
    sce.dataEnumLists.put("Person.rating", new String[] {"1", "2"});




    String[] r = dt.getValueList(c1, sce);
    assertEquals(2, r.length);
    assertEquals("bob", r[0]);
    assertEquals("michael", r[1]);

    assertEquals(0, dt.getValueList(c1_, sce).length);

    r = dt.getValueList(c1__, sce);
    assertEquals(3, r.length);
    assertEquals("one", r[0]);
    assertEquals("two", r[1]);
    assertEquals("three", r[2]);

    assertEquals(0, dt.getValueList(c2, sce).length);

    r = dt.getValueList(asf, sce);
    assertEquals(2, r.length);
    assertEquals("bob", r[0]);
    assertEquals("michael", r[1]);

    r = dt.getValueList(ins, sce);
    assertEquals(2, r.length);
    assertEquals("1", r[0]);
    assertEquals("2", r[1]);

    r = dt.getValueList(ins_, sce);
    assertEquals(3, r.length);
    assertEquals("one", r[0]);
    assertEquals("two", r[1]);
    assertEquals("three", r[2]);

    assertEquals(0, dt.getValueList(asf_, sce).length);


    r = dt.getValueList(asf__, sce);
    assertEquals(3, r.length);
    assertEquals("one", r[0]);
    assertEquals("two", r[1]);
    assertEquals("three", r[2]);

    AttributeCol at = new AttributeCol();
    at.attr = "no-loop";
    dt.attributeCols.add(at);

    r = dt.getValueList(at, sce);
    assertEquals(2, r.length);
    assertEquals("true", r[0]);
    assertEquals("false", r[1]);

    at.attr = "enabled";
    assertEquals(2, dt.getValueList(at, sce).length);

    at.attr = "salience";
    assertEquals(0, dt.getValueList(at, sce).length);

  }


  public void testNumeric() {
    SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
    sce.fieldTypes = new HashMap();
    sce.fieldTypes.put("Driver.age", SuggestionCompletionEngine.TYPE_NUMERIC);
    sce.fieldTypes.put("Driver.name", SuggestionCompletionEngine.TYPE_STRING);

    GuidedDecisionTable dt = new GuidedDecisionTable();

    AttributeCol at = new AttributeCol();
    at.attr = "salience";
    AttributeCol at_ = new AttributeCol();
    at_.attr = "enabled";

    dt.attributeCols.add(at);
    dt.attributeCols.add(at_);

    ConditionCol c1 = new ConditionCol();
    c1.boundName = "c1";
    c1.factType = "Driver";
    c1.factField = "name";
    c1.operator = "==";
    c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    dt.conditionCols.add(c1);

    ConditionCol c1_ = new ConditionCol();
    c1_.boundName = "c1";
    c1_.factType = "Driver";
    c1_.factField = "age";
    c1_.operator = "==";
    c1_.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    dt.conditionCols.add(c1_);

    ConditionCol c2 = new ConditionCol();
    c2.boundName = "c1";
    c2.factType = "Driver";
    c2.factField = "age";
    c2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    dt.conditionCols.add(c2);

    ActionSetFieldCol a = new ActionSetFieldCol();
    a.boundName = "c1";
    a.factField = "name";
    dt.actionCols.add(a);

    ActionSetFieldCol a2 = new ActionSetFieldCol();
    a2.boundName = "c1";
    a2.factField = "age";
    dt.actionCols.add(a2);

    ActionInsertFactCol ins = new ActionInsertFactCol();
    ins.boundName = "x";
    ins.factType = "Driver";
    ins.factField = "name";
    dt.actionCols.add(ins);

    ActionInsertFactCol ins_ = new ActionInsertFactCol();
    ins_.boundName = "x";
    ins_.factType = "Driver";
    ins_.factField = "age";
    dt.actionCols.add(ins_);

    assertTrue(dt.isNumeric(at, sce));
    assertFalse(dt.isNumeric(at_, sce));
    assertFalse(dt.isNumeric(c1, sce));
    assertTrue(dt.isNumeric(c1_, sce));
    assertFalse(dt.isNumeric(a, sce));
    assertTrue(dt.isNumeric(a2, sce));
    assertFalse(dt.isNumeric(ins, sce));
    assertTrue(dt.isNumeric(ins_, sce));
    assertFalse(dt.isNumeric(c2, sce));



  }

  public void testNoConstraintLists() {
    GuidedDecisionTable dt = new GuidedDecisionTable();

    //add cols for LHS
    ConditionCol c1 = new ConditionCol();
    c1.boundName = "c1";
    c1.factType = "Driver";
    c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    dt.conditionCols.add(c1);

    ConditionCol c2 = new ConditionCol();
    c2.boundName = "c2";
    c2.factType = "Driver";
    c2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    c2.valueList = "a,b,c";
    dt.conditionCols.add(c2);


    SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
    sce.dataEnumLists.put("Driver.name", new String[] {"bob", "michael"});

    assertEquals(0, dt.getValueList(c1, sce).length);
    assertEquals(3, dt.getValueList(c2, sce).length);


  }

  public void testNoConstraintsNumeric() {
    GuidedDecisionTable dt = new GuidedDecisionTable();

    //add cols for LHS
    ConditionCol c1 = new ConditionCol();
    c1.boundName = "c1";
    c1.factType = "Driver";
    c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
    dt.conditionCols.add(c1);

    SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
    sce.fieldTypes = new HashMap();
    sce.fieldTypes.put("Driver.age", SuggestionCompletionEngine.TYPE_NUMERIC);
    sce.fieldTypes.put("Driver.name", SuggestionCompletionEngine.TYPE_STRING);

    assertFalse(dt.isNumeric(c1, sce));

  }


}
TOP

Related Classes of org.drools.guvnor.modeldriven.dt.GuidedDecisionTableTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.