首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

帮助网友解决一个drools的有关问题

2013-11-25 
帮助网友解决一个drools的问题?测试的父类如下:?import java.io.Fileimport java.io.FileInputStreamimp

帮助网友解决一个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<String, Object> 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.add(ResourceFactory.newInputStreamResource(is,"UTF-8"),ResourceType.DTABLE);if (kbuilder.hasErrors()) {System.out.println(kbuilder.getErrors().toString());}Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();kbase.addKnowledgePackages(pkgs);StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();ksession.execute(Arrays.asList(new Object[] {params}));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;          this.extected = extected;   }      public static class KADest {private String orderTime;private String orderTotal;public KADest(String orderTime, String orderTotal) {this.orderTime = orderTime;this.orderTotal = orderTotal;}public Map<String,Object> getParams(){Map<String,Object> params = new HashMap<String,Object>();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<String,Object> params = new HashMap<String,Object>();    params.putAll(param.getParams());    System.out.println(params);    super.testExcel("ka/drools.xls", params);    System.out.println(params);        Assert.assertEquals(extected, "" +params.get("discountTotal"));      }

?单元测试结果如下:


帮助网友解决一个drools的有关问题
?

?

热点排行