Package org.drools.container.spring

Source Code of org.drools.container.spring.SpringDroolsTest

package org.drools.container.spring;

import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;

import org.drools.KnowledgeBase;
import org.drools.Person;
import org.drools.builder.DirectoryLookupFactoryService;
import org.drools.grid.ExecutionNode;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.StatelessKnowledgeSession;
import org.drools.server.KnowledgeService;
import org.drools.server.profile.KnowledgeServiceConfiguration;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringDroolsTest extends TestCase {
  public void test1() throws Exception {   
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/drools/container/spring/beans.xml" );

    List<String> list = new ArrayList<String>();
    StatelessKnowledgeSession kstateless = (StatelessKnowledgeSession) context.getBean( "ksession1" );
    kstateless.setGlobal( "list", list );
    kstateless.execute( new Person( "Darth", "Cheddar", 50 ) );
    assertEquals( 2, list.size() );

    list = new ArrayList<String>();
    StatefulKnowledgeSession kstateful = ((StatefulKnowledgeSession)context.getBean( "ksession2" ));
    kstateful.setGlobal( "list", list );
    kstateful.insert( new Person( "Darth", "Cheddar", 50 ) );
    kstateful.fireAllRules()
    assertEquals( 2, list.size() );
  }

  public void test2() {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/drools/container/spring/beans.xml" );

    ExecutionNode node = (ExecutionNode) context.getBean("node1");
    List<String> list = new ArrayList<String>();
    StatelessKnowledgeSession kstateless = (StatelessKnowledgeSession) node.get(DirectoryLookupFactoryService.class).lookup("stateless1");
    assertNotNull("can't obtain session named: stateless1" , kstateless);
    kstateless.setGlobal("list", list);
    kstateless.execute(new Person("Darth", "Cheddar", 50));
    assertEquals(2, list.size());

    list = new ArrayList<String>();
    StatefulKnowledgeSession kstateful = (StatefulKnowledgeSession) node.get(DirectoryLookupFactoryService.class).lookup("ksession2");
    kstateful.setGlobal("list", list);
    kstateful.insert(new Person("Darth", "Cheddar", 50));
    kstateful.fireAllRules();  
    assertEquals(2, list.size());
  }

  public void test3() {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "org/drools/container/spring/beans.xml" );
    assertNotNull(context.getBean("connection1"));
    assertNotNull(context.getBean("node1"));
    KnowledgeBase bean = (KnowledgeBase) context.getBean("kbase1");
    assertNotNull(bean);
    KnowledgeServiceConfiguration kserviceConf1 = (KnowledgeServiceConfiguration)context.getBean( "service-conf-1" );
    assertNotNull(kserviceConf1);
    assertEquals("XSTREAM", kserviceConf1.getMarshaller());
    KnowledgeService kservice = (KnowledgeService)context.getBean( "service" );
    assertNotNull(kservice);
  }
}
TOP

Related Classes of org.drools.container.spring.SpringDroolsTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.