/* * Copyright 2011 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.informer.load.spreadsheet.questionnaire; import static junit.framework.Assert.assertFalse; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.drools.KnowledgeBase; import org.drools.KnowledgeBaseFactory; import org.drools.builder.KnowledgeBuilder; import org.drools.builder.KnowledgeBuilderError; import org.drools.builder.KnowledgeBuilderFactory; import org.drools.builder.ResourceType; import org.drools.io.impl.ByteArrayResource; import org.drools.io.impl.ClassPathResource; import org.drools.runtime.StatefulKnowledgeSession; import org.junit.Ignore; import org.junit.Test; import org.drools.informer.load.questionnaire.InformerSpreadsheetLoader; import java.io.File; /** * TODO Need to flesh out actual tests as opposed to just creating DRL files from test spreadsheets. * * @author Derek Rendall */ public class InformerSpreadsheetLoaderTest { @Test @Ignore public void testProcessSimpleFile() { InformerSpreadsheetLoader loader = new InformerSpreadsheetLoader(); byte[] compiled = loader.compileFile("SampleDecisionTreeSimple.xls"); System.out.println(new String(compiled)); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ByteArrayResource(compiled),ResourceType.DRL); if (kbuilder.hasErrors()) { System.err.println(kbuilder.getErrors()); } assertFalse(kbuilder.hasErrors()); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); StatefulKnowledgeSession kSession = kbase.newStatefulKnowledgeSession(); kSession.fireAllRules(); for (Object o : kSession.getObjects()) { System.err.println(o); } //assertTrue(buildKnowledge(compiled)); } @Test @Ignore public void testProcessComplexFile() { InformerSpreadsheetLoader loader = new InformerSpreadsheetLoader(); byte[] compiled = loader.compileFile("SampleDecisionTreeComplex.xls"); System.out.println(new String(compiled)); KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ByteArrayResource(compiled),ResourceType.DRL); if (kbuilder.hasErrors()) { System.err.println(kbuilder.getErrors()); } assertFalse(kbuilder.hasErrors()); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); StatefulKnowledgeSession kSession = kbase.newStatefulKnowledgeSession(); kSession.fireAllRules(); for (Object o : kSession.getObjects()) { System.err.println(o); } } private boolean buildKnowledge(byte[] compiled) { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(new ClassPathResource("org/drools/informer/informer-changeset.xml"),ResourceType.CHANGE_SET); kbuilder.add(new ByteArrayResource(compiled), ResourceType.DRL); for (KnowledgeBuilderError kbe : kbuilder.getErrors()) { System.err.println(kbe); } assertEquals(0,kbuilder.getErrors().size()); return (kbuilder.getErrors().size() == 0); } }