Package org.drools.ide.common.modeldriven.dt

Source Code of org.drools.ide.common.modeldriven.dt.GuidedDecisionTableTest

package org.drools.ide.common.modeldriven.dt;

import java.util.HashMap;

import junit.framework.TestCase;

import org.drools.ide.common.client.modeldriven.ModelField;
import org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine;
import org.drools.ide.common.client.modeldriven.ModelField.FIELD_CLASS_TYPE;
import org.drools.ide.common.client.modeldriven.brl.ISingleFieldConstraint;
import org.drools.ide.common.client.modeldriven.dt.ActionInsertFactCol;
import org.drools.ide.common.client.modeldriven.dt.ActionSetFieldCol;
import org.drools.ide.common.client.modeldriven.dt.AttributeCol;
import org.drools.ide.common.client.modeldriven.dt.ConditionCol;
import org.drools.ide.common.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.putDataEnumList("Driver.name", new String[]{"bob", "michael"});
        sce.putDataEnumList("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.setFieldsForTypes(new HashMap<String, ModelField[]>() {
            {
                put("Driver",
                        new ModelField[]{
                            new ModelField("age", Integer.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, SuggestionCompletionEngine.TYPE_NUMERIC),
                            new ModelField("name", String.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, 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.putDataEnumList("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.setFieldsForTypes(new HashMap<String, ModelField[]>() {
            {
                put("Driver",
                        new ModelField[]{
                            new ModelField("age", Integer.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, SuggestionCompletionEngine.TYPE_NUMERIC),
                            new ModelField("name", String.class.getName(), FIELD_CLASS_TYPE.REGULAR_CLASS, SuggestionCompletionEngine.TYPE_STRING)
                        });
            }
        });

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

    }
}
TOP

Related Classes of org.drools.ide.common.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.