Search in sources :

Example 56 with AsyncPackageDataModelOracle

use of org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle 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 57 with AsyncPackageDataModelOracle

use of org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle in project kie-wb-common by kiegroup.

the class KieMultipleDocumentEditorTestBase method activateDocument.

protected void activateDocument(final TestDocument document) {
    final Overview overview = mock(Overview.class);
    final AsyncPackageDataModelOracle dmo = mock(AsyncPackageDataModelOracle.class);
    final Imports imports = mock(Imports.class);
    final boolean isReadOnly = false;
    editor.activateDocument(document, overview, dmo, imports, isReadOnly);
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) Overview(org.guvnor.common.services.shared.metadata.model.Overview) Imports(org.kie.soup.project.datamodel.imports.Imports)

Example 58 with AsyncPackageDataModelOracle

use of org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle in project kie-wb-common by kiegroup.

the class KieMultipleDocumentEditorTest method testActivateDocument.

@Test
@SuppressWarnings("unchecked")
public void testActivateDocument() {
    final TestDocument document = createTestDocument();
    final ObservablePath path = document.getLatestPath();
    final Overview overview = mock(Overview.class);
    final AsyncPackageDataModelOracle dmo = mock(AsyncPackageDataModelOracle.class);
    final Imports imports = mock(Imports.class);
    final boolean isReadOnly = false;
    registerDocument(document);
    editor.activateDocument(document, overview, dmo, imports, isReadOnly);
    assertEquals(document, editor.getActiveDocument());
    verify(versionRecordManager, times(1)).init(eq(null), eq(path), any(Callback.class));
    verify(kieEditorWrapperView, times(1)).clear();
    verify(kieEditorWrapperView, times(1)).addMainEditorPage(eq(editorView));
    verify(kieEditorWrapperView, times(1)).addOverviewPage(eq(overviewWidget), any(com.google.gwt.user.client.Command.class));
    verify(kieEditorWrapperView, times(1)).addSourcePage(eq(editor.sourceWidget));
    verify(kieEditorWrapperView, times(1)).addImportsTab(eq(importsWidget));
    verify(overviewWidget, times(1)).setContent(eq(overview), eq(path));
    verify(importsWidget, times(1)).setContent(eq(dmo), eq(imports), eq(isReadOnly));
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) RemoteCallback(org.jboss.errai.common.client.api.RemoteCallback) Callback(org.uberfire.client.callbacks.Callback) ParameterizedCommand(org.uberfire.mvp.ParameterizedCommand) Command(org.uberfire.mvp.Command) Overview(org.guvnor.common.services.shared.metadata.model.Overview) Imports(org.kie.soup.project.datamodel.imports.Imports) ObservablePath(org.uberfire.backend.vfs.ObservablePath) Test(org.junit.Test)

Example 59 with AsyncPackageDataModelOracle

use of org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle in project drools-wb by kiegroup.

the class BaseGuidedDecisionTablePresenterTest method makeDecisionTable.

protected GuidedDecisionTableView.Presenter makeDecisionTable(final Path originalPath, final ObservablePath path, final PlaceRequest placeRequest, final GuidedDecisionTableEditorContent content) {
    final GuidedDecisionTableView.Presenter dtPresenter = mock(GuidedDecisionTableView.Presenter.class);
    final AsyncPackageDataModelOracle oracle = mock(AsyncPackageDataModelOracle.class);
    final Overview overview = mock(Overview.class);
    final GuidedDecisionTablePresenter.Access access = new GuidedDecisionTablePresenter.Access();
    when(dtService.loadContent(eq(path))).thenReturn(content);
    when(modeller.addDecisionTable(eq(path), eq(placeRequest), eq(content), anyBoolean(), any(), any())).thenReturn(dtPresenter);
    when(path.getOriginal()).thenReturn(originalPath);
    when(dtPresenter.getLatestPath()).thenReturn(path);
    when(dtPresenter.getCurrentPath()).thenReturn(path);
    when(dtPresenter.getPlaceRequest()).thenReturn(placeRequest);
    when(dtPresenter.getModel()).thenReturn(content.getModel());
    when(dtPresenter.getDataModelOracle()).thenReturn(oracle);
    when(dtPresenter.getOverview()).thenReturn(overview);
    when(dtPresenter.getAccess()).thenReturn(access);
    when(dtPresenter.getView()).thenReturn(mock(GuidedDecisionTableView.class));
    when(overview.getMetadata()).thenReturn(mock(Metadata.class));
    return dtPresenter;
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) GuidedDecisionTablePresenter(org.drools.workbench.screens.guided.dtable.client.widget.table.GuidedDecisionTablePresenter) Metadata(org.guvnor.common.services.shared.metadata.model.Metadata) Overview(org.guvnor.common.services.shared.metadata.model.Overview) GuidedDecisionTableView(org.drools.workbench.screens.guided.dtable.client.widget.table.GuidedDecisionTableView)

Example 60 with AsyncPackageDataModelOracle

use of org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle in project drools-wb by kiegroup.

the class BaseGuidedDecisionTableEditorPresenterTest method testActivateDocument.

@Test
public void testActivateDocument() {
    final GuidedDecisionTableView.Presenter dtPresenter = mock(GuidedDecisionTableView.Presenter.class);
    final Overview overview = mock(Overview.class);
    final AsyncPackageDataModelOracle oracle = mock(AsyncPackageDataModelOracle.class);
    final GuidedDecisionTable52 model = mock(GuidedDecisionTable52.class);
    final Imports imports = mock(Imports.class);
    final GuidedDecisionTablePresenter.Access access = mock(GuidedDecisionTablePresenter.Access.class);
    final MultiPageEditor pageEditor = mock(MultiPageEditor.class);
    final boolean isEditable = true;
    doReturn(overview).when(dtPresenter).getOverview();
    doReturn(oracle).when(dtPresenter).getDataModelOracle();
    doReturn(model).when(dtPresenter).getModel();
    doReturn(imports).when(model).getImports();
    doReturn(access).when(dtPresenter).getAccess();
    doReturn(isEditable).when(access).isEditable();
    doReturn(pageEditor).when(presenter).getKieEditorWrapperMultiPage();
    doNothing().when(presenter).activateDocument(any(), any(), any(), any(), anyBoolean());
    presenter.activateDocument(dtPresenter);
    verify(dtPresenter).activate();
    verify(presenter).enableMenus(true);
    verify(presenter).addColumnsTab();
    verify(presenter).enableColumnsTab(dtPresenter);
    verify(presenter).activateDocument(dtPresenter, overview, oracle, imports, !isEditable);
}
Also used : AsyncPackageDataModelOracle(org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle) GuidedDecisionTable52(org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52) GuidedDecisionTablePresenter(org.drools.workbench.screens.guided.dtable.client.widget.table.GuidedDecisionTablePresenter) Overview(org.guvnor.common.services.shared.metadata.model.Overview) MultiPageEditor(org.uberfire.client.workbench.widgets.multipage.MultiPageEditor) Imports(org.kie.soup.project.datamodel.imports.Imports) GuidedDecisionTableView(org.drools.workbench.screens.guided.dtable.client.widget.table.GuidedDecisionTableView) Test(org.junit.Test)

Aggregations

AsyncPackageDataModelOracle (org.kie.workbench.common.widgets.client.datamodel.AsyncPackageDataModelOracle)86 Test (org.junit.Test)59 ModelField (org.kie.soup.project.datamodel.oracle.ModelField)55 GuidedDecisionTable52 (org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52)50 PackageDataModelOracleBaselinePayload (org.kie.workbench.common.services.datamodel.model.PackageDataModelOracleBaselinePayload)48 Path (org.uberfire.backend.vfs.Path)46 Pattern52 (org.drools.workbench.models.guided.dtable.shared.model.Pattern52)45 RawMVELEvaluator (org.kie.soup.project.datamodel.commons.util.RawMVELEvaluator)45 ConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52)43 ModuleDataModelOracle (org.kie.soup.project.datamodel.oracle.ModuleDataModelOracle)43 LimitedEntryConditionCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryConditionCol52)38 DTCellValue52 (org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52)29 List (java.util.List)21 ActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionInsertFactCol52)20 ActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.ActionSetFieldCol52)20 PackageDataModelOracle (org.kie.soup.project.datamodel.oracle.PackageDataModelOracle)20 ArrayList (java.util.ArrayList)18 LimitedEntryActionInsertFactCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionInsertFactCol52)18 LimitedEntryActionSetFieldCol52 (org.drools.workbench.models.guided.dtable.shared.model.LimitedEntryActionSetFieldCol52)18 FactPattern (org.drools.workbench.models.datamodel.rule.FactPattern)12