public AbstractDecisionTableBuilder withData(Object[][] data) { table.setData(DataUtilities.makeDataLists(data)); return this; }
public AbstractDecisionTableBuilder withData(Object[][] data) { table.setData(DataUtilities.makeDataLists(data)); return this; }
@Test public void testOtherwise() throws Exception { addRow(1, "John", false); addRow(2, "Peter", false); addRow(3, null, true); model.setData(data); String source = service.getSource(path, model); assertTrue("Expected: name == \"John\"", source.contains("$p : Person( name == \"John\" )")); assertTrue("Expected: name == \"Peter\"", source.contains("$p : Person( name == \"Peter\" )")); assertTrue("Expected: name not in ( \"John\", \"Peter\" )", source.contains("$p : Person( name not in ( \"John\", \"Peter\" )")); }
@Before public void setUp() throws Exception { dtable = new GuidedDecisionTable52(); dtable.setTableName( "Resolved hit policy table" ); dtable.setHitPolicy( GuidedDecisionTable52.HitPolicy.RESOLVED_HIT ); dtable.setData( DataUtilities.makeDataLists( new Object[][]{ new Object[]{1, "desc-row1"}, new Object[]{2, "desc-row2"}, new Object[]{3, "desc-row3"} } ) ); }
@Before public void setUp() throws Exception { dtable = new GuidedDecisionTable52(); dtable.setTableName( "First hit policy table" ); dtable.setHitPolicy( GuidedDecisionTable52.HitPolicy.FIRST_HIT ); dtable.setData( DataUtilities.makeDataLists( new Object[][]{ new Object[]{1, "desc-row1"}, new Object[]{2, "desc-row2"}, new Object[]{3, "desc-row3"} } ) ); }
@Test public void testOtherwiseEmptyAndNullValue() throws Exception { addRow(1, "", false); addRow(2, null, false); addRow(3, null, true); model.setData(data); String source = service.getSource(path, model); assertTrue("Expected: name not in ( \"\" )", source.contains("$p : Person( name not in ( \"\" )")); }
@Test public void testOtherwiseTwoSameValues() throws Exception { addRow(1, "John", false); addRow(2, "John", false); addRow(3, null, true); model.setData(data); String source = service.getSource(path, model); assertTrue("Expected: name not in ( \"John\" )", source.contains("$p : Person( name not in ( \"John\" )")); }
@Test public void testOtherwiseEmptyValue() throws Exception { addRow(1, "John", false); addRow(2, "", false); addRow(3, null, true); model.setData(data); String source = service.getSource(path, model); assertTrue("Expected: name not in ( \"John\", \"\" )", source.contains("$p : Person( name not in ( \"John\", \"\" )")); }
@Test public void testOtherwiseTwoSameValues() throws Exception { addRow(1, "John", false); addRow(2, "John", false); addRow(3, null, true); model.setData(data); String source = service.getSource(path, model); assertTrue("Expected: name not in ( \"John\" )", source.contains("$p : Person( name not in ( \"John\" )")); }
@Test public void testOtherwiseEmptyValue() throws Exception { addRow(1, "John", false); addRow(2, "", false); addRow(3, null, true); model.setData(data); String source = service.getSource(path, model); assertTrue("Expected: name not in ( \"John\", \"\" )", source.contains("$p : Person( name not in ( \"John\", \"\" )")); }
public static GuidedDecisionTable52 makeTableWithAttributeCol(final String packageName, final Collection<Import> imports, final String tableName) { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setPackageName(packageName); dt.getImports().getImports().addAll(imports); dt.setTableName(tableName); AttributeCol52 attr = new AttributeCol52(); attr.setAttribute("ruleflow-group"); dt.getAttributeCols().add(attr); dt.setData(DataUtilities.makeDataLists(new String[][]{ new String[]{"1", "desc", "myRuleFlowGroup"} })); return dt; }
@Test public void testOtherwiseEmptyAndNullValue() throws Exception { addRow(1, "", false); addRow(2, null, false); addRow(3, null, true); model.setData(data); String source = service.getSource(path, model); assertTrue("Expected: name not in ( \"\" )", source.contains("$p : Person( name not in ( \"\" )")); }
public static GuidedDecisionTable52 makeTableWithAttributeCol(final String packageName, final Collection<Import> imports, final String tableName) { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setPackageName(packageName); dt.getImports().getImports().addAll(imports); dt.setTableName(tableName); AttributeCol52 attr = new AttributeCol52(); attr.setAttribute("ruleflow-group"); dt.getAttributeCols().add(attr); dt.setData(DataUtilities.makeDataLists(new String[][]{ new String[]{"1", "desc", "myRuleFlowGroup"} })); return dt; }
@Test public void testFormulaFieldBinding() throws Exception { final ConditionCol52 ageEqualToFormulaCondition = new ConditionCol52(); ageEqualToFormulaCondition.setConstraintValueType(BaseSingleFieldConstraint.TYPE_RET_VALUE); ageEqualToFormulaCondition.setHeader("age equals to"); ageEqualToFormulaCondition.setFactField("age"); ageEqualToFormulaCondition.setOperator("=="); ageEqualToFormulaCondition.setBinding("$age"); pattern.setChildColumns(Arrays.asList(ageEqualToFormulaCondition)); model.setConditionPatterns(Arrays.asList(pattern)); addRow(1, "1 + 1"); model.setData(data); final String source = service.getSource(path, model); assertTrue(source.contains("$p : Person( $age : age == ( 1 + 1 ) )")); }
@Test public void testLimitedEntryAttributes() { GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setTableFormat(GuidedDecisionTable52.TableFormat.LIMITED_ENTRY); dt.setTableName("limited-entry"); AttributeCol52 attr = new AttributeCol52(); attr.setAttribute("salience"); dt.getAttributeCols().add(attr); dt.setData(DataUtilities.makeDataLists(new String[][]{ new String[]{"1", "desc", "100"}, new String[]{"2", "desc", "200"} })); GuidedDTDRLPersistence p = GuidedDTDRLPersistence.getInstance(); String drl = p.marshal(dt); assertTrue(drl.indexOf("salience 100") > -1); assertTrue(drl.indexOf("salience 200") > -1); }
@Test public void testFormulaFieldBinding() throws Exception { final ConditionCol52 ageEqualToFormulaCondition = new ConditionCol52(); ageEqualToFormulaCondition.setConstraintValueType(BaseSingleFieldConstraint.TYPE_RET_VALUE); ageEqualToFormulaCondition.setHeader("age equals to"); ageEqualToFormulaCondition.setFactField("age"); ageEqualToFormulaCondition.setOperator("=="); ageEqualToFormulaCondition.setBinding("$age"); pattern.setChildColumns(Arrays.asList(ageEqualToFormulaCondition)); model.setConditionPatterns(Arrays.asList(pattern)); addRow(1, "1 + 1"); model.setData(data); final String source = service.getSource(path, model); assertTrue(source.contains("$p : Person( $age : age == ( 1 + 1 ) )")); }
@Test public void testLimitedEntryMetadata() { GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setTableFormat(GuidedDecisionTable52.TableFormat.LIMITED_ENTRY); dt.setTableName("limited-entry"); MetadataCol52 md = new MetadataCol52(); md.setMetadata("metadata"); dt.getMetadataCols().add(md); dt.setData(DataUtilities.makeDataLists(new String[][]{ new String[]{"1", "desc", "md1"}, new String[]{"2", "desc", "md2"} })); GuidedDTDRLPersistence p = GuidedDTDRLPersistence.getInstance(); String drl = p.marshal(dt); assertTrue(drl.indexOf("@metadata(md1)") > -1); assertTrue(drl.indexOf("@metadata(md2)") > -1); }
@Test public void allRulesHaveTheSameActivationGroup() throws Exception { dtable.setData( DataUtilities.makeDataLists( new Object[][]{ new Object[]{1, "desc-row1"}, new Object[]{2, "desc-row2"}, new Object[]{3, "desc-row3"} } ) ); final String drl = GuidedDTDRLPersistence.getInstance() .marshal( dtable ); assertContainsLinesInOrder( drl, "rule \"Row 1 Unique hit policy table\"", "activation-group \"unique-hit-policy-group Unique hit policy table\"", "rule \"Row 2 Unique hit policy table\"", "activation-group \"unique-hit-policy-group Unique hit policy table\"", "rule \"Row 3 Unique hit policy table\"", "activation-group \"unique-hit-policy-group Unique hit policy table\"" ); } }
public static GuidedDecisionTable52 makeTableWithActionCol(final String packageName, final Collection<Import> imports, final String tableName) { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setPackageName(packageName); dt.getImports().getImports().addAll(imports); dt.setTableName(tableName); ActionInsertFactCol52 ins = new ActionInsertFactCol52(); ins.setBoundName("$i"); ins.setFactType("Applicant"); ins.setFactField("age"); ins.setType(DataType.TYPE_NUMERIC_INTEGER); dt.getActionCols().add(ins); dt.setData(DataUtilities.makeDataLists(new String[][]{ new String[]{"1", "desc", "33"} })); return dt; }
public static GuidedDecisionTable52 makeTableWithActionCol(final String packageName, final Collection<Import> imports, final String tableName) { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setPackageName(packageName); dt.getImports().getImports().addAll(imports); dt.setTableName(tableName); ActionInsertFactCol52 ins = new ActionInsertFactCol52(); ins.setBoundName("$i"); ins.setFactType("Applicant"); ins.setFactField("age"); ins.setType(DataType.TYPE_NUMERIC_INTEGER); dt.getActionCols().add(ins); dt.setData(DataUtilities.makeDataLists(new String[][]{ new String[]{"1", "desc", "33"} })); return dt; }