Skip to content

Commit

Permalink
RHBPMS-5096: Cover validation of table with predicate calculation type (
Browse files Browse the repository at this point in the history
  • Loading branch information
Jozef Marko authored and manstis committed Mar 1, 2018
1 parent 3b6819b commit 4b6fda9
Show file tree
Hide file tree
Showing 4 changed files with 150 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package org.drools.workbench.screens.guided.dtable.client.widget.analysis.checks.util;

import java.util.Objects;

public enum Operator {

NONE( "" ),
Expand Down Expand Up @@ -66,13 +68,13 @@ public enum Operator {
}

public static Operator resolve( final String operator ) {
if ( operator.equals( "== null" ) ) {
if (Objects.equals(operator,"== null")) {
return EQUALS;
} else if ( operator.equals( "!= null" ) ) {
} else if (Objects.equals(operator, "!= null")) {
return NOT_EQUALS;
} else {
for (Operator enumOperator : Operator.values()) {
if ( enumOperator.operator.equals( operator ) ) {
if (Objects.equals(enumOperator.operator, operator)) {
return enumOperator;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Objects;

import org.drools.workbench.models.guided.dtable.shared.model.Pattern52;
import org.drools.workbench.screens.guided.dtable.client.widget.analysis.checks.util.IsSubsuming;
Expand All @@ -40,7 +41,7 @@ public StringConditionInspector( final Pattern52 pattern,
operator );


if ( operator.equals( "== null" ) || operator.equals( "!= null" ) ) {
if (Objects.equals(operator,"== null" ) || Objects.equals(operator, "!= null" )) {
values.add( "null" );
} else {
switch (this.operator) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwtmockito.GwtMock;
import com.google.gwtmockito.GwtMockitoTestRunner;
import org.drools.workbench.models.datamodel.oracle.DataType;
import org.drools.workbench.models.guided.dtable.backend.GuidedDTXMLPersistence;
import org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52;
import org.drools.workbench.screens.guided.dtable.client.resources.i18n.AnalysisConstants;
Expand All @@ -40,7 +41,9 @@
import org.kie.workbench.common.widgets.decoratedgrid.client.widget.events.UpdateColumnDataEvent;

import static org.drools.workbench.screens.guided.dtable.client.widget.analysis.TestUtil.assertContains;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;

@RunWith(GwtMockitoTestRunner.class)
public class DecisionTableAnalyzerFromFileTest extends BaseDecisionTableAnalyzerTest {
Expand Down Expand Up @@ -151,6 +154,17 @@ public void testFile2WithDeletes() throws Exception {
}
}

@Test
public void testEvalCustomFunction() throws Exception {
String xml = loadResource("Set_Status_Copy.gdst");
final GuidedDecisionTable52 table52 = GuidedDTXMLPersistence.getInstance().unmarshal(xml);

DecisionTableAnalyzer analyzer = getDecisionTableAnalyzer(table52);

analyzer.onValidate(new ValidateEvent(new HashMap<Coordinate, List<List<CellValue<? extends Comparable<?>>>>>()));
assertEquals(0, analysisReport.getAnalysisData().size());
}

public static String loadResource(final String name) throws Exception {
final InputStream in = DecisionTableAnalyzerFromFileTest.class.getResourceAsStream(name);
final Reader reader = new InputStreamReader(in);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
<decision-table52>
<tableName>Set_Status_Copy</tableName>
<rowNumberCol>
<hideColumn>false</hideColumn>
<width>-1</width>
</rowNumberCol>
<descriptionCol>
<hideColumn>false</hideColumn>
<width>-1</width>
</descriptionCol>
<metadataCols/>
<attributeCols/>
<conditionPatterns>
<Pattern52>
<factType>ObjectModel</factType>
<boundName>$obj</boundName>
<isNegated>false</isNegated>
<conditions>
<condition-column52>
<typedDefaultValue>
<valueString></valueString>
<dataType>STRING</dataType>
<isOtherwise>false</isOtherwise>
</typedDefaultValue>
<hideColumn>false</hideColumn>
<width>-1</width>
<header>Name</header>
<constraintValueType>1</constraintValueType>
<factField>name</factField>
<fieldType>String</fieldType>
<operator>==</operator>
<parameters/>
</condition-column52>
<condition-column52>
<hideColumn>false</hideColumn>
<width>127</width>
<header>User Code is not empty</header>
<constraintValueType>5</constraintValueType>
<parameters/>
</condition-column52>
</conditions>
<window>
<parameters/>
</window>
</Pattern52>
</conditionPatterns>
<actionCols>
<set-field-col52>
<typedDefaultValue>
<valueString></valueString>
<dataType>STRING</dataType>
<isOtherwise>false</isOtherwise>
</typedDefaultValue>
<hideColumn>false</hideColumn>
<width>-1</width>
<header>Status</header>
<boundName>$obj</boundName>
<factField>status</factField>
<type>String</type>
<update>false</update>
</set-field-col52>
</actionCols>
<auditLog>
<filter class="org.drools.guvnor.client.modeldriven.dt52.auditlog.DecisionTableAuditLogFilter">
<acceptedTypes>
<entry>
<string>DELETE_COLUMN</string>
<boolean>false</boolean>
</entry>
<entry>
<string>UPDATE_COLUMN</string>
<boolean>false</boolean>
</entry>
<entry>
<string>INSERT_ROW</string>
<boolean>false</boolean>
</entry>
<entry>
<string>DELETE_ROW</string>
<boolean>false</boolean>
</entry>
<entry>
<string>INSERT_COLUMN</string>
<boolean>false</boolean>
</entry>
</acceptedTypes>
</filter>
<entries/>
</auditLog>
<imports>
<imports>
<org.drools.workbench.models.datamodel.imports.Import>
<type>com.sample.ObjectModel</type>
</org.drools.workbench.models.datamodel.imports.Import>
</imports>
</imports>
<packageName>com.sample.dtissuesampleproject</packageName>
<tableFormat>EXTENDED_ENTRY</tableFormat>
<data>
<list>
<value>
<valueNumeric class="int">1</valueNumeric>
<valueString></valueString>
<dataType>NUMERIC_INTEGER</dataType>
<isOtherwise>false</isOtherwise>
</value>
<value>
<valueString></valueString>
<dataType>STRING</dataType>
<isOtherwise>false</isOtherwise>
</value>
<value>
<valueString>Tester</valueString>
<dataType>STRING</dataType>
<isOtherwise>false</isOtherwise>
</value>
<value>
<valueString>isNotEmpty(userCode)</valueString>
<dataType>STRING</dataType>
<isOtherwise>false</isOtherwise>
</value>
<value>
<valueString>Valid</valueString>
<dataType>STRING</dataType>
<isOtherwise>false</isOtherwise>
</value>
</list>
</data>
</decision-table52>

0 comments on commit 4b6fda9

Please sign in to comment.