[jboss-svn-commits] JBL Code SVN: r36388 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Dec 12 21:32:58 EST 2010
Author: eaa
Date: 2010-12-12 21:32:58 -0500 (Sun, 12 Dec 2010)
New Revision: 36388
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentIncrementalChangeSetTest.java
Log:
JBRULES-2817: Make the KnowledgeAgent Tests more robust and faster
- Added Query test
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentIncrementalChangeSetTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentIncrementalChangeSetTest.java 2010-12-13 02:11:58 UTC (rev 36387)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentIncrementalChangeSetTest.java 2010-12-13 02:32:58 UTC (rev 36388)
@@ -1,40 +1,24 @@
package org.drools.agent;
-import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Writer;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import junit.framework.TestCase;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
-import org.drools.Person;
+import org.drools.runtime.rule.QueryResults;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
-import org.drools.core.util.DroolsStreamUtils;
-import org.drools.core.util.FileManager;
import org.drools.definition.KnowledgePackage;
import org.drools.definition.rule.Rule;
import org.drools.definitions.impl.KnowledgePackageImp;
-import org.drools.io.ResourceChangeScannerConfiguration;
import org.drools.io.ResourceFactory;
-import org.drools.io.impl.ResourceChangeNotifierImpl;
-import org.drools.io.impl.ResourceChangeScannerImpl;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.rule.FactHandle;
-import org.drools.runtime.rule.QueryResults;
import org.drools.runtime.rule.QueryResultsRow;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.ResourceHandler;
public class KnowledgeAgentIncrementalChangeSetTest extends BaseKnowledgeAgentTest {
@@ -989,121 +973,85 @@
kagent.dispose();
}
- // public void testAddModifyQueryIncremental() throws Exception {
- // String header = "";
- // header += "package org.drools.test\n";
- // header += "global java.util.List list\n\n";
+ public void testAddModifyQueryIncremental() throws Exception {
+
+ String query1 = "";
+ query1 += "query \"all the Strings\"\n";
+ query1 += " $strings : String()\n";
+ query1 += "end\n";
+
+ fileManager.write("rule1.drl", this.createDefaultRule("rule1") );
+
+ String xml = "";
+ xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
+ xml += " xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'";
+ xml += " xs:schemaLocation='http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd' >";
+ xml += " <add> ";
+ xml += " <resource source='http://localhost:"+this.getPort()+"/rule1.drl' type='DRL' />";
+ xml += " </add> ";
+ xml += "</change-set>";
+ File fxml = fileManager.write( "changeset.xml",
+ xml );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ KnowledgeAgent kagent = this.createKAgent( kbase, false );
+
+ try {
+ applyChangeSet( kagent,
+ ResourceFactory.newUrlResource( fxml.toURI().toURL() ) );
+ } catch (Exception e) {
+ fail( "Knowledge shouldn't fail to compile" );
+ }
+
+ KnowledgePackage knowledgePackage = kbase.getKnowledgePackage("org.drools.test");
+
+ assertNotNull(knowledgePackage);
+
+ Rule allTheStringsQuery = ((KnowledgePackageImp) knowledgePackage).getRule("all the Strings");
+
+ assertNull(allTheStringsQuery);
+
+
+ //we are going to add the query now
+ fileManager.write("rule1.drl", this.createDefaultRule("rule1") + " \n " + query1 );
+
+ this.scan(kagent);
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ List<String> list = new ArrayList<String>();
+ ksession.setGlobal("list", list);
+ ksession.insert("Some String");
+ ksession.insert("Some Other String");
+
+ QueryResults queryResults = ksession.getQueryResults("all the Strings");
+
+ assertEquals(2, queryResults.size());
+
+ Iterator<QueryResultsRow> iterator = queryResults.iterator();
+ while (iterator.hasNext()){
+ System.out.println("Row= "+iterator.next().get("$strings"));
+ }
+
+ //we are going to modify the query definition
+ String query1V2 = "";
+ query1V2 += "query \"all the Strings\"\n";
+ query1V2 += " $strings : String(this == \"Some String\")\n";
+ query1V2 += "end\n";
+
+ fileManager.write("rule1.drl", this.createDefaultRule("rule1") + " \n " + query1V2 );
+
+ this.scan(kagent);
+
+ queryResults = ksession.getQueryResults("all the Strings");
+
+
+ assertEquals(1, queryResults.size());
+ assertEquals("Some String",queryResults.iterator().next().get("$strings"));
+
+ ksession.dispose();
+ kagent.dispose();
+ }
//
- //
- // String query1 = "";
- // query1 += "query \"all the Strings\"\n";
- // query1 += " $strings : String()\n";
- // query1 += "end\n";
- //
- // String rule1 = this.createCommonRule("rule1");
- //
- // File f1 = fileManager.newFile("rule1.drl");
- // Writer output = new BufferedWriter(new FileWriter(f1));
- // output.write(header);
- // output.write(rule1);
- // output.close();
- //
- // String xml = "";
- // xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
- // xml += " xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'";
- // xml += " xs:schemaLocation='http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd' >";
- // xml += " <add> ";
- // xml += " <resource source='http://localhost:"+this.getPort()+"/rule1.drl' type='DRL' />";
- // xml += " </add> ";
- // xml += "</change-set>";
- // File fxml = fileManager.newFile("changeset.xml");
- // output = new BufferedWriter(new FileWriter(fxml));
- // output.write(xml);
- // output.close();
- //
- // KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
- // KnowledgeAgent kagent = this.createKAgent(kbase);
- //
- // kagent.applyChangeSet(ResourceFactory.newUrlResource(fxml.toURI().toURL()));
- //
- //
- // KnowledgePackage knowledgePackage = kbase.getKnowledgePackage("org.drools.test");
- //
- // assertNotNull(knowledgePackage);
- //
- // Rule allTheStringsQuery = ((KnowledgePackageImp) knowledgePackage).getRule("all the Strings");
- //
- // assertNull(allTheStringsQuery);
- //
- // // have to sleep here as linux lastModified does not do milliseconds
- // // http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=1&t=019789
- // System.gc();
- // Thread.sleep(2000);
- //
- // //we are going to add the query now
- // output = new BufferedWriter(new FileWriter(f1));
- // output.write(header);
- // output.write(query1);
- // output.write(rule1);
- // output.close();
- // System.gc();
- // Thread.sleep(3000);
- //
- // StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
- // List<String> list = new ArrayList<String>();
- // ksession.setGlobal("list", list);
- // ksession.insert("Some String");
- // ksession.insert("Some Other String");
- //
- // QueryResults queryResults = ksession.getQueryResults("all the Strings");
- //
- // ksession.dispose();
- //
- //
- // assertEquals(2, queryResults.size());
- //
- // Iterator<QueryResultsRow> iterator = queryResults.iterator();
- // while (iterator.hasNext()){
- // System.out.println("Row= "+iterator.next().get("$strings"));
- // }
- //
- // //we are going to modify the query definition
- // // have to sleep here as linux lastModified does not do milliseconds
- // // http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=1&t=019789
- // System.gc();
- // Thread.sleep(2000);
- //
- // //we are going to add function1 now
- // String query1V2 = "";
- // query1V2 += "query \"all the Strings\"\n";
- // query1V2 += " $strings : String(this == \"Some String\")\n";
- // query1V2 += "end\n";
- //
- // output = new BufferedWriter(new FileWriter(f1));
- // output.write(header);
- // output.write(query1V2);
- // output.write(rule1);
- // output.close();
- // System.gc();
- // Thread.sleep(3000);
- //
- // ksession = kbase.newStatefulKnowledgeSession();
- // list = new ArrayList<String>();
- // ksession.setGlobal("list", list);
- // ksession.insert("Some String");
- // ksession.insert("Some Other String");
- //
- // queryResults = ksession.getQueryResults("all the Strings");
- //
- // ksession.dispose();
- //
- //
- // assertEquals(1, queryResults.size());
- // assertEquals("Some String",queryResults.iterator().next().get("$strings"));
- //
- // kagent.monitorResourceChangeEvents(false);
- // }
- //
// public void testStatefulSessionReuse() throws Exception {
//
// String header = "";
More information about the jboss-svn-commits
mailing list