我好久没用drools,看见没人回复,我就翻了下原来的代码,希望能帮助到你。
测试父类
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.DecisionTableConfiguration;
import org.drools.builder.DecisionTableInputType;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.definition.KnowledgePackage;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatelessKnowledgeSession;
public class KATestBase {
public void testExcel(String fileName, Map params)
throws Exception {
System.out.println("---------------begin------------------------");
DecisionTableConfiguration dtableconfiguration = KnowledgeBuilderFactory
.newDecisionTableConfiguration();
dtableconfiguration.setInputType(DecisionTableInputType.XLS);
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
File file = new File("E:\workspace\epct\rule\src\test\resources\"
+ fileName);
InputStream is = new FileInputStream(file);
//InputStream is = new ClassPathResource(fileName).getInputStream();
kbuilder.wInputStreamResource(is,"UTF-8"),
ResourceType.DTABLE);
if (kbuilder.hasErrors()) {
System.out.Errors().toString());
}
Collection pkgs = KnowledgePackages();
KnowledgeBase kbase = wKnowledgeBase();
kbase.addKnowledgePackages(pkgs);
StatelessKnowledgeSession ksession = kbase
.newStatelessKnowledgeSession();
System.out.println("---------------end------------------------");
}
测试子类:
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import junit.framework.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class DroolsTest extends KATestBase{
private KADest param;
private String extected;
public DroolsTest(KADest param,String extected) {
this.param = param;
}
public static class KADest {
private String orderTime;
private String orderTotal;
public KADest(String orderTime, String orderTotal) {
}
public Map getParams(){
Map params = new HashMap();
params.put("orderTime", orderTime);
params.put("orderTotal", orderTotal);
params.put("discountTotal", 0);
return params;
}
}
@Parameters
public static Collection> contructData(){
return Arrays.asList(new Object[][]{
{new KADest("2013-01-02 12:30:31","6"),"3"},
{new KADest("2013-01-02 12:30:31","1"),"0"},
{new KADest("2013-01-02 12:30:31","2"),"1"},
{new KADest("2013-01-01 12:30:31","2"),"1"},
{new KADest("2013-01-01 12:30:31","2"),"1"},
{new KADest("2013-01-01 12:30:31","2"),"1"},
{new KADest("2013-01-04 12:30:31","2"),"0"},
{new KADest("2013-01-04 12:30:31","2"),"0"},
{new KADest("2013-01-04 12:30:31","2"),"0"},
});
}
@Test
public void testKaDest() throws Exception{
Map params = new HashMap();
params.Params());
System.out.println(params);
System.out.println(params);
Assert.assertEquals(extected, "" ("discountTotal"));
}
本文发布于:2024-02-02 08:23:41,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170683342042551.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |