/* * Copyright 2010 salaboy. * * 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. * under the License. */ package org.drools.grid.remote.commands; import java.util.Collection; import org.drools.common.DefaultFactHandle; import org.drools.grid.NodeTests.MyObject; import org.drools.runtime.StatefulKnowledgeSession; import org.drools.runtime.rule.FactHandle; import org.junit.Assert; import org.junit.Test; /** * * @author salaboy */ public class RemoteSessionCommandTests extends BaseRemoteTest{ public RemoteSessionCommandTests() { } @Test public void insertTest() { StatefulKnowledgeSession ksession = createSession(); ksession.setGlobal("myGlobalObj", new MyObject("myglobalObj")); FactHandle handle = ksession.insert(new MyObject("obj1")); Assert.assertNotNull(handle); Assert.assertEquals(true, ((DefaultFactHandle)handle).isDisconnected()); int fired = ksession.fireAllRules(); Assert.assertEquals(fired, 1); } @Test public void getGlobalTest() { StatefulKnowledgeSession ksession = createSession(); ksession.setGlobal("myGlobalObj", new MyObject("myglobalObj")); Assert.assertEquals("myglobalObj", ((MyObject)ksession.getGlobal("myGlobalObj")).getName()); } @Test public void retractTest() { StatefulKnowledgeSession ksession = createSession(); ksession.setGlobal("myGlobalObj", new MyObject("myglobalObj")); FactHandle handle = ksession.insert(new MyObject("obj1")); Assert.assertNotNull(handle); Assert.assertEquals(true, ((DefaultFactHandle)handle).isDisconnected()); int fired = ksession.fireAllRules(); Assert.assertEquals(fired, 1); Assert.assertEquals(1, ksession.getFactCount()); ksession.retract(handle); Assert.assertEquals(0, ksession.getFactCount()); } @Test public void updateTest() { StatefulKnowledgeSession ksession = createSession(); ksession.setGlobal("myGlobalObj", new MyObject("myglobalObj")); FactHandle handle = ksession.insert(new MyObject("obj1")); Assert.assertNotNull(handle); Assert.assertEquals(true, ((DefaultFactHandle)handle).isDisconnected()); int fired = ksession.fireAllRules(); Assert.assertEquals(fired, 1); Assert.assertEquals(1, ksession.getFactCount()); ksession.update(handle, new MyObject("obj2")); Assert.assertEquals(1, ksession.getFactCount()); fired = ksession.fireAllRules(); Assert.assertEquals(fired, 1); } // @Test // public void getFactHandleTest() { // StatefulKnowledgeSession ksession = createSession(); // // ksession.setGlobal("myGlobalObj", new MyObject("myglobalObj")); // MyObject obj1 = new MyObject("obj1"); // FactHandle handle = ksession.insert(obj1); // Assert.assertNotNull(handle); // Assert.assertEquals(true, ((DefaultFactHandle)handle).isDisconnected()); // // The session assertMap doesn't find the factHandle for this object // FactHandle newHandle = ksession.getFactHandle(obj1); // // Assert.assertEquals( newHandle, handle ); // // // } // @Test // public void getFactHandlesTest() { // StatefulKnowledgeSession ksession = createSession(); // // ksession.setGlobal("myGlobalObj", new MyObject("myglobalObj")); // MyObject obj1 = new MyObject("obj1"); // FactHandle handle = ksession.insert(obj1); // Assert.assertNotNull(handle); // Assert.assertEquals(true, ((DefaultFactHandle)handle).isDisconnected()); // //I'm having problems with ObjectStoreWrapper that it's not serializable // Collection<FactHandle> factHandles = ksession.getFactHandles(); // Assert.assertEquals(1, factHandles.size()); // Assert.assertEquals(handle, factHandles.iterator().next() ); // // // } @Test public void getObjectTest() { StatefulKnowledgeSession ksession = createSession(); ksession.setGlobal("myGlobalObj", new MyObject("myglobalObj")); MyObject obj1 = new MyObject("obj1"); FactHandle handle = ksession.insert(obj1); Assert.assertNotNull(handle); Assert.assertEquals(true, ((DefaultFactHandle)handle).isDisconnected()); Object result = ksession.getObject(handle); Assert.assertEquals(obj1, result); } }