final GuidedDecisionTree expected = new GuidedDecisionTree();
expected.setTreeName( "test" );
final TypeNode type = new TypeNodeImpl( "Person" );
final ConstraintNode c1 = new ConstraintNodeImpl( "Person",
"name",
"==",
new StringValue( "Michael" ) );
final ConstraintNode c2 = new ConstraintNodeImpl( "Person",
"age",
"==",
new IntegerValue( 41 ) );
final ConstraintNode c3 = new ConstraintNodeImpl( "Person",
"gender",
"==",
new StringValue( "Male" ) );
expected.setRoot( type );
type.addChild( c1 );
type.addChild( c2 );
type.addChild( c3 );
addModelField( "Person",
"this",
"Person",
DataType.TYPE_THIS );
addModelField( "Person",
"name",
String.class.getName(),
DataType.TYPE_STRING );
addModelField( "Person",
"age",
Integer.class.getName(),
DataType.TYPE_NUMERIC_INTEGER );
addModelField( "Person",
"gender",
String.class.getName(),
DataType.TYPE_STRING );
final GuidedDecisionTree model = GuidedDecisionTreeDRLPersistence.getInstance().unmarshal( drl,
"test",
dmo );
assertNotNull( model );
assertEquals( 0,
model.getParserErrors().size() );
assertEquals( expected.getTreeName(),
model.getTreeName() );
assertNotNull( model.getRoot() );
final TypeNode _t1 = model.getRoot();
assertEquals( type.getClassName(),
_t1.getClassName() );
assertFalse( _t1.isBound() );
assertEquals( 3,
_t1.getChildren().size() );
assertNotNull( _t1.getChildren().get( 0 ) );
assertTrue( _t1.getChildren().get( 0 ) instanceof ConstraintNode );
final ConstraintNode _c1 = (ConstraintNode) _t1.getChildren().get( 0 );
assertEquals( c1.getClassName(),
_c1.getClassName() );
assertEquals( c1.getFieldName(),
_c1.getFieldName() );
assertEquals( c1.getOperator(),
_c1.getOperator() );
assertEquals( c1.getValue().getValue().toString(),
_c1.getValue().getValue().toString() );
assertNotNull( _t1.getChildren().get( 1 ) );
assertTrue( _t1.getChildren().get( 1 ) instanceof ConstraintNode );
final ConstraintNode _c2 = (ConstraintNode) _t1.getChildren().get( 1 );
assertEquals( c2.getClassName(),
_c2.getClassName() );
assertEquals( c2.getFieldName(),
_c2.getFieldName() );
assertEquals( c2.getOperator(),
_c2.getOperator() );
assertEquals( c2.getValue().getValue().toString(),
_c2.getValue().getValue().toString() );
assertNotNull( _t1.getChildren().get( 2 ) );
assertTrue( _t1.getChildren().get( 2 ) instanceof ConstraintNode );
final ConstraintNode _c3 = (ConstraintNode) _t1.getChildren().get( 2 );
assertEquals( c3.getClassName(),
_c3.getClassName() );
assertEquals( c3.getFieldName(),
_c3.getFieldName() );
assertEquals( c3.getOperator(),
_c3.getOperator() );
assertEquals( c3.getValue().getValue().toString(),
_c3.getValue().getValue().toString() );
assertEquals( 0,
_c1.getChildren().size() );
assertEquals( 0,
_c2.getChildren().size() );
assertEquals( 0,
_c3.getChildren().size() );
}