Search in sources :

Example 71 with ActionSetFieldCol52

use of org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52 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 72 with ActionSetFieldCol52

use of org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52 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 73 with ActionSetFieldCol52

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

the class ActionSetFieldCol52DefinitionBuilderTest method simpleActionSetField.

@Test
public void simpleActionSetField() {
    final AtomicBoolean calledBack = new AtomicBoolean(false);
    setupPatternAndCondition();
    final ActionSetFieldCol52 asf = new ActionSetFieldCol52();
    asf.setBoundName("$p");
    asf.setFactField("name");
    model.getActionCols().add(asf);
    when(dmo.getFieldType(eq("Person"), eq("name"))).thenReturn(DataType.TYPE_STRING);
    builder.generateDefinition(dtPresenter, asf, (String definition) -> {
        calledBack.set(true);
        assertEquals("$p.setName( \"x\" );", definition);
    });
    assertTrue(calledBack.get());
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52) Test(org.junit.Test)

Example 74 with ActionSetFieldCol52

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

the class ColumnDefinitionFactoryTest method knownColumnType_ActionSetFieldCol52.

@Test
@SuppressWarnings("unchecked")
public void knownColumnType_ActionSetFieldCol52() {
    final BaseColumn column = new ActionSetFieldCol52();
    final Callback<String> callback = mock(Callback.class);
    columnDefinitionFactory.generateColumnDefinition(dtPresenter, column, callback);
    verify(actionSetFieldCol52DefinitionBuilder, times(1)).generateDefinition(eq(dtPresenter), eq(column), any(Callback.class));
    verify(callback, times(1)).callback(any(String.class));
}
Also used : Callback(org.uberfire.client.callbacks.Callback) BaseColumn(org.drools.workbench.models.guided.dtable.shared.model.BaseColumn) ActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52) Test(org.junit.Test)

Example 75 with ActionSetFieldCol52

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

the class ExtendedGuidedDecisionTableBuilder method createActionSetField.

public static ActionSetFieldCol52 createActionSetField(String boundName, String factField, String typeNumericInteger) {
    ActionSetFieldCol52 column = new ActionSetFieldCol52();
    column.setBoundName(boundName);
    column.setFactField(factField);
    column.setType(typeNumericInteger);
    return column;
}
Also used : ActionSetFieldCol52(org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52)

Aggregations

ActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52)75 Test (org.junit.Test)49 Pattern52 (org.drools.workbench.models.guided.dtable.shared.model.Pattern52)39 ConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52)38 ActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52)29 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)27 LimitedEntryActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52)23 DTCellValue52 (org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52)16 LimitedEntryConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52)16 LimitedEntryActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52)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 BaseColumn (org.drools.workbench.models.guided.dtable.shared.model.BaseColumn)10 ActionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionCol52)9 ActionRetractFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionRetractFactCol52)8 AttributeCol52 (org.drools.workbench.models.guided.dtable.shared.model.AttributeCol52)8