use of org.drools.drl.ast.descr.ConstraintConnectiveDescr in project drools by kiegroup.
the class DescrDumperTest method testProcessImplicitConstraints.
@Test
public void testProcessImplicitConstraints() throws Exception {
String expr = "field1#Class!.field2";
String expectedConstraints = "field1 instanceof Class";
String expectedExpr = "((Class)field1).field2";
AtomicExprDescr atomicExpr = new AtomicExprDescr(expr);
ConstraintConnectiveDescr ccd = new ConstraintConnectiveDescr();
String[] constraintsAndExpr = dumper.processImplicitConstraints(expr, atomicExpr, ccd, ccd.getDescrs().indexOf(atomicExpr), null);
assertEquals(expectedConstraints, ccd.getDescrs().get(0).toString());
assertEquals(expectedExpr, constraintsAndExpr[1]);
assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());
expr = "field1!.field2#Class.field3";
String expectedConstraints1 = "field1 != null";
String expectedConstraints2 = "field1.field2 instanceof Class";
expectedExpr = "((Class)field1.field2).field3";
atomicExpr = new AtomicExprDescr(expr);
ccd = new ConstraintConnectiveDescr();
constraintsAndExpr = dumper.processImplicitConstraints(expr, atomicExpr, ccd, ccd.getDescrs().indexOf(atomicExpr), null);
assertEquals(expectedConstraints1, ccd.getDescrs().get(0).toString());
assertEquals(expectedConstraints2, ccd.getDescrs().get(1).toString());
assertEquals(expectedExpr, constraintsAndExpr[1]);
assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());
expr = "field1#Class.field2!.field3";
expectedConstraints1 = "field1 instanceof Class";
expectedConstraints2 = "((Class)field1).field2 != null";
expectedExpr = "((Class)field1).field2.field3";
atomicExpr = new AtomicExprDescr(expr);
ccd = new ConstraintConnectiveDescr();
constraintsAndExpr = dumper.processImplicitConstraints(expr, atomicExpr, ccd, ccd.getDescrs().indexOf(atomicExpr), null);
assertEquals(expectedConstraints1, ccd.getDescrs().get(0).toString());
assertEquals(expectedConstraints2, ccd.getDescrs().get(1).toString());
assertEquals(expectedExpr, constraintsAndExpr[1]);
assertEquals(expectedExpr, atomicExpr.getRewrittenExpression());
}
use of org.drools.drl.ast.descr.ConstraintConnectiveDescr in project drools by kiegroup.
the class DescrDumperTest method testDumpMatches3.
@Test
public void testDumpMatches3() throws Exception {
String input = "this[\"content\"] matches \"hello ;=\"";
String expected = "this[\"content\"] ~= \"hello ;=\"";
ConstraintConnectiveDescr descr = parse(input);
String result = dumper.dump(descr);
assertEquals(expected, result);
}
use of org.drools.drl.ast.descr.ConstraintConnectiveDescr in project drools by kiegroup.
the class DescrDumperTest method testDumpBindingsComplexOp.
@Test
public void testDumpBindingsComplexOp() throws Exception {
String input = "$x : age in (10, 20, $someVal)";
String expected = "( age == 10 || age == 20 || age == $someVal )";
ConstraintConnectiveDescr descr = parse(input);
DumperContext ctx = new DumperContext();
String result = dumper.dump(descr, ctx);
assertEquals(expected, result);
assertEquals(1, ctx.getBindings().size());
BindingDescr bind = ctx.getBindings().get(0);
assertEquals("$x", bind.getVariable());
assertEquals("age", bind.getExpression());
}
use of org.drools.drl.ast.descr.ConstraintConnectiveDescr in project drools by kiegroup.
the class DescrDumperTest method testDumpComplex.
@Test
public void testDumpComplex() throws Exception {
String input = "a ( > 60 && < 70 ) || ( > 50 && < 55 ) && a3 == \"black\" || a == 40 && a3 == \"pink\" || a == 12 && a3 == \"yellow\" || a3 == \"blue\"";
String expected = "( ( a > 60 && a < 70 || a > 50 && a < 55 ) && a3 == \"black\" || a == 40 && a3 == \"pink\" || a == 12 && a3 == \"yellow\" || a3 == \"blue\" )";
ConstraintConnectiveDescr descr = parse(input);
String result = dumper.dump(descr);
assertEquals(expected, result);
}
use of org.drools.drl.ast.descr.ConstraintConnectiveDescr in project drools by kiegroup.
the class DescrDumperTest method testDumpBindings4.
@Test
public void testDumpBindings4() throws Exception {
String input = "( $a : a > $b : b[10].prop || $x : someMethod(10) ) && 10 != 20";
String expected = "( a > b[10].prop ) && 10 != 20";
ConstraintConnectiveDescr descr = parse(input);
String result = dumper.dump(descr);
assertEquals(expected, result);
}
Aggregations