Search in sources :

Example 91 with ActionInsertFactCol52

use of org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52 in project drools-wb by kiegroup.

the class ActionInsertFactWrapperTest method testCloneALimitedEntryActionInsert.

@Test
public void testCloneALimitedEntryActionInsert() throws Exception {
    doReturn(GuidedDecisionTable52.TableFormat.LIMITED_ENTRY).when(model).getTableFormat();
    final LimitedEntryActionInsertFactCol52 column = new LimitedEntryActionInsertFactCol52();
    column.setFactField("factField");
    column.setBoundName("boundName");
    column.setValueList("valueList");
    column.setHeader("header");
    column.setInsertLogical(false);
    column.setDefaultValue(new DTCellValue52("defaultValue"));
    column.setFactType("factType");
    column.setHideColumn(false);
    column.setType("type");
    column.setValue(new DTCellValue52("value"));
    final ActionInsertFactWrapper wrapper = new ActionInsertFactWrapper(plugin, column);
    final ActionInsertFactCol52 clone = wrapper.getActionCol52();
    assertEquals("factField", column.getFactField());
    assertEquals("boundName", column.getBoundName());
    assertEquals("valueList", column.getValueList());
    assertEquals("header", column.getHeader());
    assertEquals(false, column.isInsertLogical());
    assertEquals(new DTCellValue52("defaultValue"), column.getDefaultValue());
    assertEquals("factType", column.getFactType());
    assertEquals(false, column.isHideColumn());
    assertEquals("type", column.getType());
    assertEquals(new DTCellValue52("value"), column.getValue());
    assertNotSame(column, clone);
}
Also used : ActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52) LimitedEntryActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52) LimitedEntryActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52) DTCellValue52(org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52) Test(org.junit.Test)

Example 92 with ActionInsertFactCol52

use of org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52 in project drools-wb by kiegroup.

the class RowExpanderTests method testExpansionWithGuvnorDependentEnumsExplicitExpansion2_2enum_x_2values.

@Test
public void testExpansionWithGuvnorDependentEnumsExplicitExpansion2_2enum_x_2values() {
    GuidedDecisionTable52 model = new GuidedDecisionTable52();
    final String enumDefinitions = "'Fact.field1' : ['f1a', 'f1b'], " + "'Fact.field2[field1=f1a]' : ['f1af2a', 'f1af2b'], " + "'Fact.field2[field1=f1b]' : ['f1bf2a', 'f1bf2b']";
    final ModuleDataModelOracle projectLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addFact("Fact").addField(new ModelField("field1", String.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_STRING)).addField(new ModelField("field2", String.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_STRING)).end().build();
    final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator()).setModuleOracle(projectLoader).addEnum(enumDefinitions, Thread.currentThread().getContextClassLoader()).build();
    // Emulate server-to-client conversions
    final AsyncPackageDataModelOracle oracle = getOracle();
    final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
    dataModel.setModelFields(projectLoader.getModuleModelFields());
    dataModel.setWorkbenchEnumDefinitions(packageLoader.getPackageWorkbenchDefinitions());
    populateDataModelOracle(mock(Path.class), model, oracle, dataModel);
    Pattern52 p1 = new Pattern52();
    p1.setBoundName("f1");
    p1.setFactType("Fact");
    model.getConditions().add(p1);
    ConditionCol52 c1 = new ConditionCol52();
    c1.setFactField("field1");
    c1.setOperator("==");
    c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    p1.getChildColumns().add(c1);
    ConditionCol52 c2 = new ConditionCol52();
    c2.setFactField("field2");
    c2.setOperator("==");
    c2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    p1.getChildColumns().add(c2);
    ActionSetFieldCol52 a1 = new ActionSetFieldCol52();
    a1.setBoundName("f1");
    a1.setFactField("field1");
    model.getActionCols().add(a1);
    ActionInsertFactCol52 a2 = new ActionInsertFactCol52();
    a2.setBoundName("f2");
    a2.setFactType("Fact");
    a2.setFactField("field1");
    model.getActionCols().add(a2);
    RowExpander re = new RowExpander(model, oracle);
    // Explicitly expand the first column, not the second
    re.setExpandColumn(c1, true);
    re.setExpandColumn(c2, false);
    List<RowExpander.ColumnValues> columns = re.getColumns();
    assertEquals(6, columns.size());
    assertTrue(columns.get(0) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(1) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(2) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(3) instanceof RowExpander.ColumnDynamicValues);
    assertTrue(columns.get(4) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(5) instanceof RowExpander.ColumnValues);
    // Can't check size of values for ColumnDynamicValues as they depend on the other columns
    assertEquals(1, columns.get(0).values.size());
    assertEquals(1, columns.get(1).values.size());
    assertEquals(2, columns.get(2).values.size());
    assertEquals(1, columns.get(4).values.size());
    assertEquals(1, columns.get(5).values.size());
    // Expected data
    // --> f1a, null
    // --> f1b, null
    RowExpander.RowIterator ri = re.iterator();
    assertTrue(ri.hasNext());
    List<DTCellValue52> row0 = ri.next();
    assertEquals(6, row0.size());
    assertEquals("f1a", row0.get(2).getStringValue());
    assertNull(row0.get(3));
    assertTrue(ri.hasNext());
    List<DTCellValue52> row1 = ri.next();
    assertEquals(6, row1.size());
    assertEquals("f1b", row1.get(2).getStringValue());
    assertNull(row1.get(3));
    assertFalse(ri.hasNext());
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) Path(org.uberfire.backend.vfs.Path) GuidedDecisionTable52(org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52) ActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52) LimitedEntryActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52) ModuleDataModelOracle(org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle) DTCellValue52(org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52) ActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52) LimitedEntryActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52) ConditionCol52(org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52) LimitedEntryConditionCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52) Pattern52(org.drools.workbench.models.guided.dtable.shared.model.Pattern52) ModelField(org.kie.soup.project.datamodel.oracle.ModelField) PackageDataModelOracleBaselinePayload(org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload) RawMVELEvaluator(org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator) PackageDataModelOracle(org.kie.soup.project.datamodel.oracle.PackageDataModelOracle) AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) Test(org.junit.Test)

Example 93 with ActionInsertFactCol52

use of org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52 in project drools-wb by kiegroup.

the class RowExpanderTests method testExpansionWithGuvnorDependentEnumsExplicitExpansion1_2enum_x_2values.

@Test
public void testExpansionWithGuvnorDependentEnumsExplicitExpansion1_2enum_x_2values() {
    GuidedDecisionTable52 model = new GuidedDecisionTable52();
    final String enumDefinitions = "'Fact.field1' : ['f1a', 'f1b'], " + "'Fact.field2[field1=f1a]' : ['f1af2a', 'f1af2b'], " + "'Fact.field2[field1=f1b]' : ['f1bf2a', 'f1bf2b']";
    final ModuleDataModelOracle projectLoader = ModuleDataModelOracleBuilder.newModuleOracleBuilder(new RawMVELEvaluator()).addFact("Fact").addField(new ModelField("field1", String.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_STRING)).addField(new ModelField("field2", String.class.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, ModelField.FIELD_ORIGIN.DECLARED, FieldAccessorsAndMutators.BOTH, DataType.TYPE_STRING)).end().build();
    final PackageDataModelOracle packageLoader = PackageDataModelOracleBuilder.newPackageOracleBuilder(new RawMVELEvaluator()).setModuleOracle(projectLoader).addEnum(enumDefinitions, Thread.currentThread().getContextClassLoader()).build();
    // Emulate server-to-client conversions
    final AsyncPackageDataModelOracle oracle = getOracle();
    final PackageDataModelOracleBaselinePayload dataModel = new PackageDataModelOracleBaselinePayload();
    dataModel.setModelFields(projectLoader.getModuleModelFields());
    dataModel.setWorkbenchEnumDefinitions(packageLoader.getPackageWorkbenchDefinitions());
    populateDataModelOracle(mock(Path.class), model, oracle, dataModel);
    Pattern52 p1 = new Pattern52();
    p1.setBoundName("f1");
    p1.setFactType("Fact");
    model.getConditions().add(p1);
    ConditionCol52 c1 = new ConditionCol52();
    c1.setFactField("field1");
    c1.setOperator("==");
    c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    p1.getChildColumns().add(c1);
    ConditionCol52 c2 = new ConditionCol52();
    c2.setFactField("field2");
    c2.setOperator("==");
    c2.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
    p1.getChildColumns().add(c2);
    ActionSetFieldCol52 a1 = new ActionSetFieldCol52();
    a1.setBoundName("f1");
    a1.setFactField("field1");
    model.getActionCols().add(a1);
    ActionInsertFactCol52 a2 = new ActionInsertFactCol52();
    a2.setBoundName("f2");
    a2.setFactType("Fact");
    a2.setFactField("field1");
    model.getActionCols().add(a2);
    RowExpander re = new RowExpander(model, oracle);
    // Explicitly set which columns to expand
    for (ConditionCol52 c : p1.getChildColumns()) {
        re.setExpandColumn(c, true);
    }
    List<RowExpander.ColumnValues> columns = re.getColumns();
    assertEquals(6, columns.size());
    assertTrue(columns.get(0) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(1) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(2) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(3) instanceof RowExpander.ColumnDynamicValues);
    assertTrue(columns.get(4) instanceof RowExpander.ColumnValues);
    assertTrue(columns.get(5) instanceof RowExpander.ColumnValues);
    // Can't check size of values for ColumnDynamicValues as they depend on the other columns
    assertEquals(1, columns.get(0).values.size());
    assertEquals(1, columns.get(1).values.size());
    assertEquals(2, columns.get(2).values.size());
    assertEquals(1, columns.get(4).values.size());
    assertEquals(1, columns.get(5).values.size());
    // Expected data
    // --> f1a, f1af2a
    // --> f1a, f1af2b
    // --> f1b, f1bf2a
    // --> f1b, f1bf2b
    RowExpander.RowIterator ri = re.iterator();
    assertTrue(ri.hasNext());
    List<DTCellValue52> row0 = ri.next();
    assertEquals(6, row0.size());
    assertEquals("f1a", row0.get(2).getStringValue());
    assertEquals("f1af2a", row0.get(3).getStringValue());
    assertTrue(ri.hasNext());
    List<DTCellValue52> row1 = ri.next();
    assertEquals(6, row1.size());
    assertEquals("f1a", row1.get(2).getStringValue());
    assertEquals("f1af2b", row1.get(3).getStringValue());
    assertTrue(ri.hasNext());
    List<DTCellValue52> row3 = ri.next();
    assertEquals(6, row3.size());
    assertEquals("f1b", row3.get(2).getStringValue());
    assertEquals("f1bf2a", row3.get(3).getStringValue());
    assertTrue(ri.hasNext());
    List<DTCellValue52> row4 = ri.next();
    assertEquals(6, row4.size());
    assertEquals("f1b", row4.get(2).getStringValue());
    assertEquals("f1bf2b", row4.get(3).getStringValue());
    assertFalse(ri.hasNext());
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) Path(org.uberfire.backend.vfs.Path) GuidedDecisionTable52(org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52) ActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52) LimitedEntryActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52) ModuleDataModelOracle(org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle) DTCellValue52(org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52) ActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52) LimitedEntryActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52) ConditionCol52(org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52) LimitedEntryConditionCol52(org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52) Pattern52(org.drools.workbench.models.guided.dtable.shared.model.Pattern52) ModelField(org.kie.soup.project.datamodel.oracle.ModelField) PackageDataModelOracleBaselinePayload(org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload) RawMVELEvaluator(org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator) PackageDataModelOracle(org.kie.soup.project.datamodel.oracle.PackageDataModelOracle) AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) Test(org.junit.Test)

Example 94 with ActionInsertFactCol52

use of org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52 in project drools-wb by kiegroup.

the class ActionInsertFactCol52DefinitionBuilderTest method simpleAction.

@Test
public void simpleAction() {
    final AtomicBoolean calledBack = new AtomicBoolean(false);
    final ActionInsertFactCol52 aif = new ActionInsertFactCol52();
    aif.setFactType("Person");
    aif.setFactField("name");
    model.getActionCols().add(aif);
    when(dmo.getFieldType(eq("Person"), eq("name"))).thenReturn(DataType.TYPE_STRING);
    builder.generateDefinition(dtPresenter, aif, (String definition) -> {
        calledBack.set(true);
        assertEquals("Person fact0 = new Person();<br/>" + "fact0.setName( \"x\" );<br/>" + "insert( fact0 );", definition);
    });
    assertTrue(calledBack.get());
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ActionInsertFactCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52) Test(org.junit.Test)

Aggregations

ActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52)94 Test (org.junit.Test)64 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)35 ConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52)31 Pattern52 (org.drools.workbench.models.guided.dtable.shared.model.Pattern52)31 ActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52)30 LimitedEntryActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52)24 DTCellValue52 (org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52)19 BRLActionColumn (org.drools.workbench.models.guided.dtable.shared.model.BRLActionColumn)15 ActionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionCol52)13 BaseColumn (org.drools.workbench.models.guided.dtable.shared.model.BaseColumn)13 LimitedEntryActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52)12 LimitedEntryConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52)12 RawMVELEvaluator (org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator)12 PackageDataModelOracleBaselinePayload (org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload)12 AsyncPackageDataModelOracle (org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle)12 Path (org.uberfire.backend.vfs.Path)12 ModelField (org.kie.soup.project.datamodel.oracle.ModelField)11 ModuleDataModelOracle (org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle)11 ActionRetractFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionRetractFactCol52)10