use of org.drools.workbench.models.guided.dtable.shared.model.Pattern52 in project drools by kiegroup.
the class BRLRuleModelTest method testRuleModelLHSBoundFacts.
@Test
public void testRuleModelLHSBoundFacts() {
GuidedDecisionTable52 dt = new GuidedDecisionTable52();
// Setup Decision Table columns
Pattern52 p1 = new Pattern52();
p1.setFactType("Driver");
p1.setBoundName("$p1");
ConditionCol52 c1 = new ConditionCol52();
c1.setFactField("name");
c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
c1.setBinding("$c1");
p1.getChildColumns().add(c1);
dt.getConditions().add(p1);
// Setup RuleModel columns (new BRLConditionColumn being added)
BRLRuleModel model = new BRLRuleModel(dt);
FactPattern fp = new FactPattern("Driver");
fp.setBoundName("$brl1");
SingleFieldConstraint sfc1 = new SingleFieldConstraint();
sfc1.setFieldBinding("$sfc1");
sfc1.setOperator("==");
sfc1.setFactType("Driver");
sfc1.setFieldName("name");
sfc1.setFieldType(DataType.TYPE_STRING);
fp.addConstraint(sfc1);
model.addLhsItem(fp);
// Checks
assertNotNull(model.getLHSBoundFacts());
assertEquals(2, model.getLHSBoundFacts().size());
assertTrue(model.getLHSBoundFacts().contains("$p1"));
assertTrue(model.getLHSBoundFacts().contains("$brl1"));
assertNotNull(model.getLHSBindingType("$p1"));
assertEquals("Driver", model.getLHSBindingType("$p1"));
assertNotNull(model.getLHSBindingType("$brl1"));
assertEquals("Driver", model.getLHSBindingType("$brl1"));
FactPattern r1 = model.getLHSBoundFact("$p1");
assertNotNull(r1);
assertTrue(r1 instanceof Pattern52FactPatternAdaptor);
Pattern52FactPatternAdaptor raif1 = (Pattern52FactPatternAdaptor) r1;
assertEquals("Driver", raif1.getFactType());
FactPattern r2 = model.getLHSBoundFact("$brl1");
assertNotNull(r2);
assertEquals("Driver", r2.getFactType());
}
use of org.drools.workbench.models.guided.dtable.shared.model.Pattern52 in project drools by kiegroup.
the class BRLRuleModelTest method testDecisionTableColumnsWithRHSBoundFacts.
@Test
public void testDecisionTableColumnsWithRHSBoundFacts() {
GuidedDecisionTable52 dt = new GuidedDecisionTable52();
Pattern52 p1 = new Pattern52();
p1.setFactType("Driver");
p1.setBoundName("$p1");
ConditionCol52 c1 = new ConditionCol52();
c1.setFactField("name");
c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
c1.setBinding("$c1");
p1.getChildColumns().add(c1);
dt.getConditions().add(p1);
ActionInsertFactCol52 ins = new ActionInsertFactCol52();
ins.setBoundName("$ins");
ins.setFactField("rating");
ins.setFactType("Person");
ins.setType(DataType.TYPE_STRING);
dt.getActionCols().add(ins);
ActionInsertFactCol52 ins2 = new ActionInsertFactCol52();
ins2.setInsertLogical(true);
ins2.setBoundName("$ins2");
ins2.setFactField("rating2");
ins2.setFactType("Person2");
ins2.setType(DataType.TYPE_STRING);
dt.getActionCols().add(ins2);
BRLActionColumn brlAction = new BRLActionColumn();
ActionInsertFact aif = new ActionInsertFact("Person");
aif.setBoundName("$aif");
aif.addFieldValue(new ActionFieldValue("rating", null, DataType.TYPE_STRING));
aif.getFieldValues()[0].setNature(BaseSingleFieldConstraint.TYPE_LITERAL);
brlAction.getDefinition().add(aif);
dt.getActionCols().add(brlAction);
BRLRuleModel model = new BRLRuleModel(dt);
assertNotNull(model.getRHSBoundFacts());
assertEquals(3, model.getRHSBoundFacts().size());
assertTrue(model.getRHSBoundFacts().contains("$ins"));
assertTrue(model.getRHSBoundFacts().contains("$ins2"));
assertTrue(model.getRHSBoundFacts().contains("$aif"));
ActionInsertFact r1 = model.getRHSBoundFact("$ins");
assertNotNull(r1);
assertTrue(r1 instanceof ActionInsertFactCol52ActionInsertFactAdaptor);
ActionInsertFactCol52ActionInsertFactAdaptor raif1 = (ActionInsertFactCol52ActionInsertFactAdaptor) r1;
assertEquals("Person", raif1.getFactType());
assertEquals("rating", raif1.getFieldValues()[0].getField());
assertEquals(DataType.TYPE_STRING, raif1.getFieldValues()[0].getType());
assertNull(raif1.getFieldValues()[0].getValue());
assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, raif1.getFieldValues()[0].getNature());
ActionInsertFact r2 = model.getRHSBoundFact("$ins2");
assertNotNull(r2);
assertTrue(r2 instanceof ActionInsertFactCol52ActionInsertLogicalFactAdaptor);
ActionInsertFactCol52ActionInsertLogicalFactAdaptor raif2 = (ActionInsertFactCol52ActionInsertLogicalFactAdaptor) r2;
assertEquals("Person2", raif2.getFactType());
assertEquals("rating2", raif2.getFieldValues()[0].getField());
assertEquals(DataType.TYPE_STRING, raif2.getFieldValues()[0].getType());
assertNull(raif2.getFieldValues()[0].getValue());
assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, raif2.getFieldValues()[0].getNature());
ActionInsertFact r3 = model.getRHSBoundFact("$aif");
assertNotNull(r3);
assertTrue(r3 instanceof ActionInsertFact);
ActionInsertFact raif3 = (ActionInsertFact) r3;
assertEquals("Person", raif3.getFactType());
assertEquals("rating", raif3.getFieldValues()[0].getField());
assertEquals(DataType.TYPE_STRING, raif3.getFieldValues()[0].getType());
assertNull(raif3.getFieldValues()[0].getValue());
assertEquals(BaseSingleFieldConstraint.TYPE_LITERAL, raif3.getFieldValues()[0].getNature());
}
use of org.drools.workbench.models.guided.dtable.shared.model.Pattern52 in project drools by kiegroup.
the class BRLRuleModelTest method testRHSDelimitedNonEmptyStringValues.
@Test
public void testRHSDelimitedNonEmptyStringValues() {
GuidedDecisionTable52 dt = new GuidedDecisionTable52();
dt.setTableFormat(GuidedDecisionTable52.TableFormat.EXTENDED_ENTRY);
dt.setTableName("extended-entry");
Pattern52 p1 = new Pattern52();
p1.setBoundName("p1");
p1.setFactType("Smurf");
BRLActionColumn brlAction = new BRLActionColumn();
ActionUpdateField auf1 = new ActionUpdateField("p1");
auf1.addFieldValue(new ActionFieldValue("name", "$name", DataType.TYPE_STRING));
auf1.getFieldValues()[0].setNature(BaseSingleFieldConstraint.TYPE_TEMPLATE);
ActionUpdateField auf2 = new ActionUpdateField("p1");
auf2.addFieldValue(new ActionFieldValue("age", "$age", DataType.TYPE_NUMERIC_INTEGER));
auf2.getFieldValues()[0].setNature(BaseSingleFieldConstraint.TYPE_TEMPLATE);
brlAction.getDefinition().add(auf1);
brlAction.getDefinition().add(auf2);
brlAction.getChildColumns().add(new BRLActionVariableColumn("$name", DataType.TYPE_STRING, "Smurf", "name"));
brlAction.getChildColumns().add(new BRLActionVariableColumn("$age", DataType.TYPE_NUMERIC_INTEGER, "Smurf", "age"));
dt.getActionCols().add(brlAction);
// Test 1
dt.setData(DataUtilities.makeDataLists(new Object[][] { new Object[] { 1l, "desc-row1", null, null } }));
String drl1 = GuidedDTDRLPersistence.getInstance().marshal(dt);
final String expected1 = "//from row number: 1\n" + "//desc-row1\n" + "rule \"Row 1 extended-entry\"\n" + " dialect \"mvel\"\n" + " when\n" + " then\n" + "end";
assertEqualsIgnoreWhitespace(expected1, drl1);
// Test 2
dt.setData(DataUtilities.makeDataLists(new Object[][] { new Object[] { 2l, "desc-row2", "\" \"", 35l } }));
String drl2 = GuidedDTDRLPersistence.getInstance().marshal(dt);
final String expected2 = "//from row number: 1\n" + "//desc-row2\n" + "rule \"Row 2 extended-entry\"\n" + " dialect \"mvel\"\n" + " when\n" + " then\n" + " modify( p1 ) {\n" + " setName( \" \" ),\n" + " setAge( 35 )\n" + " }\n" + "end";
assertEqualsIgnoreWhitespace(expected2, drl2);
// Test 3
dt.setData(DataUtilities.makeDataLists(new Object[][] { new Object[] { 3l, "desc-row3", "\"\"", null } }));
String drl3 = GuidedDTDRLPersistence.getInstance().marshal(dt);
final String expected3 = "//from row number: 1\n" + "//desc-row3\n" + "rule \"Row 3 extended-entry\"\n" + " dialect \"mvel\"\n" + " when\n" + " then\n" + " modify( p1 ) {\n" + " setName( \"\" )\n" + " }\n" + "end";
assertEqualsIgnoreWhitespace(expected3, drl3);
// Test 4
dt.setData(DataUtilities.makeDataLists(new Object[][] { new Object[] { 4l, "desc-row4", "\"\"", 35l } }));
String drl4 = GuidedDTDRLPersistence.getInstance().marshal(dt);
final String expected4 = "//from row number: 1\n" + "//desc-row4\n" + "rule \"Row 4 extended-entry\"\n" + " dialect \"mvel\"\n" + " when\n" + " then\n" + " modify( p1 ) {\n" + " setName( \"\" ),\n" + " setAge( 35 )\n" + " }\n" + "end";
assertEqualsIgnoreWhitespace(expected4, drl4);
}
use of org.drools.workbench.models.guided.dtable.shared.model.Pattern52 in project drools by kiegroup.
the class BRLRuleModelTest method testDecisionTableColumnsWithLHSBoundFields.
@Test
public void testDecisionTableColumnsWithLHSBoundFields() {
GuidedDecisionTable52 dt = new GuidedDecisionTable52();
Pattern52 p1 = new Pattern52();
p1.setFactType("Driver");
p1.setBoundName("$p1");
ConditionCol52 c1 = new ConditionCol52();
c1.setFactField("name");
c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
c1.setBinding("$c1");
p1.getChildColumns().add(c1);
dt.getConditions().add(p1);
BRLConditionColumn brlCondition = new BRLConditionColumn();
FactPattern fp = new FactPattern("Driver");
fp.setBoundName("$brl1");
SingleFieldConstraint sfc1 = new SingleFieldConstraint();
sfc1.setFieldBinding("$sfc1");
sfc1.setOperator("==");
sfc1.setFactType("Driver");
sfc1.setFieldName("name");
sfc1.setFieldType(DataType.TYPE_STRING);
fp.addConstraint(sfc1);
brlCondition.getDefinition().add(fp);
dt.getConditions().add(brlCondition);
ActionInsertFactCol52 ins = new ActionInsertFactCol52();
ins.setBoundName("$ins");
ins.setFactField("rating");
ins.setFactType("Person");
ins.setType(DataType.TYPE_STRING);
dt.getActionCols().add(ins);
BRLRuleModel model = new BRLRuleModel(dt);
FieldConstraint fcr1 = model.getLHSBoundField("$sfc1");
assertNotNull(fcr1);
assertTrue(fcr1 instanceof SingleFieldConstraint);
SingleFieldConstraint fcr1sfc = (SingleFieldConstraint) fcr1;
assertEquals("name", fcr1sfc.getFieldName());
assertEquals(DataType.TYPE_STRING, fcr1sfc.getFieldType());
}
use of org.drools.workbench.models.guided.dtable.shared.model.Pattern52 in project drools by kiegroup.
the class BRLRuleModelTest method testDecisionTableColumnsWithLHS.
@Test
public void testDecisionTableColumnsWithLHS() {
GuidedDecisionTable52 dt = new GuidedDecisionTable52();
Pattern52 p1 = new Pattern52();
p1.setFactType("Driver");
p1.setBoundName("$p1");
ConditionCol52 c1 = new ConditionCol52();
c1.setFactField("name");
c1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_LITERAL);
c1.setBinding("$c1");
p1.getChildColumns().add(c1);
dt.getConditions().add(p1);
BRLConditionColumn brlCondition = new BRLConditionColumn();
FactPattern fp = new FactPattern("Driver");
fp.setBoundName("$brl1");
SingleFieldConstraint sfc1 = new SingleFieldConstraint();
sfc1.setFieldBinding("$sfc1");
sfc1.setOperator("==");
sfc1.setFactType("Driver");
sfc1.setFieldName("name");
sfc1.setFieldType(DataType.TYPE_STRING);
fp.addConstraint(sfc1);
brlCondition.getDefinition().add(fp);
dt.getConditions().add(brlCondition);
ActionInsertFactCol52 ins = new ActionInsertFactCol52();
ins.setBoundName("$ins");
ins.setFactField("rating");
ins.setFactType("Person");
ins.setType(DataType.TYPE_STRING);
dt.getActionCols().add(ins);
BRLRuleModel model = new BRLRuleModel(dt);
assertNotNull(model.getAllVariables());
assertEquals(5, model.getAllVariables().size());
assertTrue(model.getAllVariables().contains("$p1"));
assertTrue(model.getAllVariables().contains("$c1"));
assertTrue(model.getAllVariables().contains("$ins"));
assertTrue(model.getAllVariables().contains("$brl1"));
assertTrue(model.getAllVariables().contains("$sfc1"));
}
Aggregations