/* * 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; import org.drools.KnowledgeBase; import org.drools.KnowledgeBaseFactory; import org.drools.QueryResult; import org.drools.builder.KnowledgeBuilder; import org.drools.builder.KnowledgeBuilderFactory; import org.drools.builder.ResourceType; import org.drools.io.ResourceFactory; import org.drools.runtime.StatefulKnowledgeSession; import org.drools.runtime.rule.QueryResults; import org.drools.runtime.rule.Variable; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Arrays; import static org.junit.Assert.*; /** * Created by IntelliJ IDEA. * Date: 5/23/11 * Time: 12:42 PM */ public class MultipleSurveyTest { private static final Logger logger = LoggerFactory.getLogger(MultipleSurveyTest.class); private KnowledgeBase knowledgeBase; @Before public void setUp() throws Exception { KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); knowledgeBuilder.add(ResourceFactory.newClassPathResource("org/drools/informer/informer-changeset.xml"), ResourceType.CHANGE_SET); knowledgeBuilder.add(ResourceFactory.newClassPathResource("org/drools/informer/multiSurveyTest.drl"), ResourceType.DRL); logger.debug(Arrays.toString(knowledgeBuilder.getErrors().toArray())); System.err.println(Arrays.toString(knowledgeBuilder.getErrors().toArray())); assertFalse(knowledgeBuilder.hasErrors()); knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(); knowledgeBase.addKnowledgePackages(knowledgeBuilder.getKnowledgePackages()); } @Test public void testMultiple() { StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession(); ArrayList<String> list = new ArrayList<String>(); ksession.setGlobal("list",list); ksession.insert("1"); ksession.insert("2"); ksession.fireAllRules(); QueryResults results = ksession.getQueryResults("activeObjectsInContext", "1"); assertEquals(2,results.size()); QueryResults results2 = ksession.getQueryResults("getItemId", "Question 1", "1", Variable.v ); assertEquals(1,results2.size()); String qid = (String) results2.iterator().next().get("$id"); assertNotNull(qid); ksession.insert(new Answer(qid,"xyz")); ksession.fireAllRules(); assertTrue(list.contains("1")); assertFalse(list.contains("2")); for (Object o : ksession.getObjects()) { System.err.println(o); } } }