📄 xmlpackagereadertest.java
字号:
names.get( 1 ) );
final List types = functionDescr.getParameterTypes();
assertEquals( "Bar",
types.get( 0 ) );
assertEquals( "Bing",
types.get( 1 ) );
assertEquals( "System.out.println(\"hello world\");",
functionDescr.getText().trim() );
final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
assertEquals( "my rule",
ruleDescr.getName() );
final AndDescr lhsDescr = ruleDescr.getLhs();
AndDescr andDescr = (AndDescr) lhsDescr.getDescrs().get( 0 );
OrDescr orDescr = (OrDescr) lhsDescr.getDescrs().get( 1 );
final ColumnDescr column1 = (ColumnDescr) lhsDescr.getDescrs().get( 2 );
assertNull( column1.getIdentifier() );
assertEquals( "Foo",
column1.getObjectType() );
final ColumnDescr column2 = (ColumnDescr) lhsDescr.getDescrs().get( 3 );
assertEquals( "Bar",
column2.getObjectType() );
assertEquals( "bar",
column2.getIdentifier() );
final ColumnDescr column3 = (ColumnDescr) lhsDescr.getDescrs().get( 4 );
final LiteralDescr literalDescr = (LiteralDescr) column3.getDescrs().get( 0 );
assertEquals( "field1",
literalDescr.getFieldName() );
assertEquals( "==",
literalDescr.getEvaluator() );
assertEquals( "value1",
literalDescr.getText() );
final PredicateDescr predicateDescr = (PredicateDescr) column3.getDescrs().get( 1 );
assertEquals( "field1",
predicateDescr.getFieldName() );
assertEquals( "var1",
predicateDescr.getDeclaration() );
assertEquals( "1==1",
predicateDescr.getText() );
final ReturnValueDescr returnValueDescr = (ReturnValueDescr) column3.getDescrs().get( 2 );
assertEquals( "field1",
returnValueDescr.getFieldName() );
assertEquals( "==",
returnValueDescr.getEvaluator() );
assertEquals( "1==1",
returnValueDescr.getText() );
final FieldBindingDescr fieldBindingDescr = (FieldBindingDescr) column3.getDescrs().get( 3 );
assertEquals( "field1",
fieldBindingDescr.getFieldName() );
assertEquals( "var1",
fieldBindingDescr.getIdentifier() );
final BoundVariableDescr boundVariableDescr = (BoundVariableDescr) column3.getDescrs().get( 4 );
assertEquals( "field1",
boundVariableDescr.getFieldName() );
assertEquals( "==",
boundVariableDescr.getEvaluator() );
assertEquals( "var1",
boundVariableDescr.getIdentifier() );
final NotDescr notDescr = (NotDescr) lhsDescr.getDescrs().get( 5 );
assertEquals( 1,
notDescr.getDescrs().size() );
ColumnDescr columnDescr = (ColumnDescr) notDescr.getDescrs().get( 0 );
assertEquals( "Bar",
columnDescr.getObjectType() );
final ExistsDescr existsDescr = (ExistsDescr) lhsDescr.getDescrs().get( 6 );
assertEquals( 1,
existsDescr.getDescrs().size() );
columnDescr = (ColumnDescr) existsDescr.getDescrs().get( 0 );
assertEquals( "Bar",
columnDescr.getObjectType() );
andDescr = (AndDescr) lhsDescr.getDescrs().get( 7 );
assertEquals( 2,
andDescr.getDescrs().size() );
orDescr = (OrDescr) andDescr.getDescrs().get( 0 );
columnDescr = (ColumnDescr) orDescr.getDescrs().get( 0 );
assertEquals( "Bar",
columnDescr.getObjectType() );
columnDescr = (ColumnDescr) andDescr.getDescrs().get( 1 );
assertEquals( "Yada",
columnDescr.getObjectType() );
orDescr = (OrDescr) lhsDescr.getDescrs().get( 8 );
assertEquals( 2,
orDescr.getDescrs().size() );
andDescr = (AndDescr) orDescr.getDescrs().get( 0 );
columnDescr = (ColumnDescr) andDescr.getDescrs().get( 0 );
assertEquals( "Foo",
columnDescr.getObjectType() );
columnDescr = (ColumnDescr) orDescr.getDescrs().get( 1 );
assertEquals( "Zaa",
columnDescr.getObjectType() );
final EvalDescr evalDescr = (EvalDescr) lhsDescr.getDescrs().get( 9 );
assertEquals( "1==1",
evalDescr.getText() );
}
public void testParseRhs() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRhs.xml" ) ) );
final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
assertNotNull( packageDescr );
assertEquals( "com.sample",
packageDescr.getName() );
final List imports = packageDescr.getImports();
assertEquals( 2,
imports.size() );
assertEquals( "java.util.HashMap",
imports.get( 0 ) );
assertEquals( "org.drools.*",
imports.get( 1 ) );
final Map globals = packageDescr.getGlobals();
assertEquals( 2,
globals.size() );
assertEquals( "com.sample.X",
globals.get( "x" ) );
assertEquals( "com.sample.Yada",
globals.get( "yada" ) );
final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
final List names = functionDescr.getParameterNames();
assertEquals( "foo",
names.get( 0 ) );
assertEquals( "bada",
names.get( 1 ) );
final List types = functionDescr.getParameterTypes();
assertEquals( "Bar",
types.get( 0 ) );
assertEquals( "Bing",
types.get( 1 ) );
assertEquals( "System.out.println(\"hello world\");",
functionDescr.getText().trim() );
final RuleDescr ruleDescr = (RuleDescr) packageDescr.getRules().get( 0 );
assertEquals( "my rule",
ruleDescr.getName() );
final String consequence = ruleDescr.getConsequence();
assertNotNull( consequence );
assertEquals( "System.out.println( \"hello\" );",
consequence.trim() );
}
public void testParseQuery() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseQuery.xml" ) ) );
final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
assertNotNull( packageDescr );
assertEquals( "com.sample",
packageDescr.getName() );
final List imports = packageDescr.getImports();
assertEquals( 2,
imports.size() );
assertEquals( "java.util.HashMap",
imports.get( 0 ) );
assertEquals( "org.drools.*",
imports.get( 1 ) );
final Map globals = packageDescr.getGlobals();
assertEquals( 2,
globals.size() );
assertEquals( "com.sample.X",
globals.get( "x" ) );
assertEquals( "com.sample.Yada",
globals.get( "yada" ) );
final FunctionDescr functionDescr = (FunctionDescr) packageDescr.getFunctions().get( 0 );
final List names = functionDescr.getParameterNames();
assertEquals( "foo",
names.get( 0 ) );
assertEquals( "bada",
names.get( 1 ) );
final List types = functionDescr.getParameterTypes();
assertEquals( "Bar",
types.get( 0 ) );
assertEquals( "Bing",
types.get( 1 ) );
assertEquals( "System.out.println(\"hello world\");",
functionDescr.getText().trim() );
final QueryDescr queryDescr = (QueryDescr) packageDescr.getRules().get( 0 );
assertEquals( "my query",
queryDescr.getName() );
final AndDescr lhs = queryDescr.getLhs();
assertEquals( 1,
lhs.getDescrs().size() );
final ColumnDescr columnDescr = (ColumnDescr) lhs.getDescrs().get( 0 );
assertEquals( "Foo",
columnDescr.getObjectType() );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -