📄 xmlpackagereadertest.java
字号:
package org.drools.xml;
import java.io.InputStreamReader;
import java.util.List;
import java.util.Map;
import junit.framework.TestCase;
import org.drools.lang.descr.AndDescr;
import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.BoundVariableDescr;
import org.drools.lang.descr.ColumnDescr;
import org.drools.lang.descr.EvalDescr;
import org.drools.lang.descr.ExistsDescr;
import org.drools.lang.descr.FieldBindingDescr;
import org.drools.lang.descr.FunctionDescr;
import org.drools.lang.descr.LiteralDescr;
import org.drools.lang.descr.NotDescr;
import org.drools.lang.descr.OrDescr;
import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.PredicateDescr;
import org.drools.lang.descr.QueryDescr;
import org.drools.lang.descr.ReturnValueDescr;
import org.drools.lang.descr.RuleDescr;
public class XmlPackageReaderTest extends TestCase {
public void testParsePackageName() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParsePackageName.xml" ) ) );
final PackageDescr packageDescr = xmlPackageReader.getPackageDescr();
assertNotNull( packageDescr );
assertEquals( "com.sample",
packageDescr.getName() );
}
public void testParseImport() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseImport.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 ) );
}
public void testParseGlobal() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseGlobal.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" ) );
}
public void testParseFunction() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseFunction.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() );
}
public void testParseRule() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRule.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() );
assertEquals( 1,
ruleDescr.getAttributes().size() );
final AttributeDescr attributeDescr = (AttributeDescr) ruleDescr.getAttributes().get( 0 );
assertEquals( "salience",
attributeDescr.getName() );
assertEquals( "10",
attributeDescr.getValue() );
final AndDescr lhs = ruleDescr.getLhs();
assertEquals( 1,
lhs.getDescrs().size() );
final ColumnDescr columnDescr = (ColumnDescr) lhs.getDescrs().get( 0 );
assertEquals( "Foo",
columnDescr.getObjectType() );
final String consequence = ruleDescr.getConsequence();
assertNotNull( consequence );
assertEquals( "System.out.println( \"hello\" );",
consequence.trim() );
}
public void testParseLhs() throws Exception {
final XmlPackageReader xmlPackageReader = new XmlPackageReader();
xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseLhs.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",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -