public void testNestedCompositeConstraintsSecondValue() {
TemplateModel m = new TemplateModel();
m.name = "t1";
FactPattern p = new FactPattern( "Person" );
CompositeFieldConstraint comp = new CompositeFieldConstraint();
comp.setCompositeJunctionType( CompositeFieldConstraint.COMPOSITE_TYPE_OR );
p.addConstraint( comp );
m.addLhsItem( p );
final SingleFieldConstraint sfc1 = new SingleFieldConstraint();
sfc1.setFieldName( "field1" );
sfc1.setFieldType( DataType.TYPE_STRING );
sfc1.setConstraintValueType( SingleFieldConstraint.TYPE_TEMPLATE );
sfc1.setValue( "$f1" );
sfc1.setOperator( "==" );
comp.addConstraint( sfc1 );
CompositeFieldConstraint comp2 = new CompositeFieldConstraint();
comp2.setCompositeJunctionType( CompositeFieldConstraint.COMPOSITE_TYPE_AND );
final SingleFieldConstraint comp2sfc1 = new SingleFieldConstraint();
comp2sfc1.setFieldType( DataType.TYPE_STRING );
comp2sfc1.setFieldName( "field2" );
comp2sfc1.setOperator( "==" );
comp2sfc1.setValue( "$f2" );
comp2sfc1.setConstraintValueType( BaseSingleFieldConstraint.TYPE_TEMPLATE );
comp2.addConstraint( comp2sfc1 );
final SingleFieldConstraint comp2sfc2 = new SingleFieldConstraint();
comp2sfc2.setFieldType( DataType.TYPE_STRING );
comp2sfc2.setFieldName( "field3" );
comp2sfc2.setOperator( "==" );
comp2sfc2.setValue( "$f3" );
comp2sfc2.setConstraintValueType( BaseSingleFieldConstraint.TYPE_TEMPLATE );
comp2.addConstraint( comp2sfc2 );
comp.addConstraint( comp2 );
String expected = "rule \"t1_0\"\n" +
"dialect \"mvel\"\n" +