[overlord-commits] Overlord SVN: r247 - in sam/trunk/modules/core/src/test: resources/database and 1 other directory.
overlord-commits at lists.jboss.org
overlord-commits at lists.jboss.org
Thu Aug 14 05:12:20 EDT 2008
Author: heiko.braun at jboss.com
Date: 2008-08-14 05:12:19 -0400 (Thu, 14 Aug 2008)
New Revision: 247
Added:
sam/trunk/modules/core/src/test/resources/database/sampleJoin.drl
sam/trunk/modules/core/src/test/resources/database/triggerPull.drl
Removed:
sam/trunk/modules/core/src/test/resources/database/test.drl
Modified:
sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java
sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/Query.java
Log:
Added SQL join sample
Modified: sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java
===================================================================
--- sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java 2008-08-14 07:47:10 UTC (rev 246)
+++ sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/DatabaseTestCase.java 2008-08-14 09:12:19 UTC (rev 247)
@@ -60,7 +60,7 @@
db.update("INSERT INTO quotes (symbol, name, price) VALUES('RHT', 'Red Hat', 22.82)");
db.update("INSERT INTO quotes (symbol, name, price) VALUES('ORCL', 'Oracle', 22.85)");
db.update("INSERT INTO quotes (symbol, name, price) VALUES('JAVA', 'Sun', 12.42)" );
- db.update("INSERT INTO quotes (symbol, name, price) VALUES('GOOG', 'Goole', 572.51)");
+ db.update("INSERT INTO quotes (symbol, name, price) VALUES('GOOG', 'Google', 572.51)");
// database dump
//db.query("SELECT symbol, price FROM quotes");
@@ -74,55 +74,50 @@
/**
* Fire a event to trigger the SQL query
*/
- public void testTriggeredSQLQuery() throws Exception
+ public void testSQLQuery() throws Exception
{
// setup
- String epl = getDRLFromResource("database/test.drl");
+ String epl = getDRLFromResource("database/triggerPull.drl");
+ eventProcessor.registerBoundStatement("InVM","TriggerSQL", epl);
- eventProcessor.registerBoundStatement("InVM","PullSQL", epl);
-
// trigger
- generateInVMEvent( new Query("%") );
+ Query queryMessage = new Query("%");
+ generateInVMEvent(queryMessage);
// evaluate
assertTrue("Listener not invoked", bufferedOutput.isInvoked());
EventMessage[] eventMessages = bufferedOutput.getLastNewData();
assertEquals(7, eventMessages.length);
- for(EventMessage event : eventMessages)
- {
- System.out.println(event.getProperty("symbol") + " -> " + event.getProperty("price") );
- }
+ dump(eventMessages);
}
- public void testEsperPullAPI() throws Exception
+ public void testSQLJoin() throws Exception
{
- System.out.println("FIXME: testPullAPI on database queries");
+ // setup
+ String epl = getDRLFromResource("database/sampleJoin.drl");
+ eventProcessor.registerBoundStatement("InVM","SQLJoin", epl);
- /*See http://jira.codehaus.org/browse/ESPER-254
+ // trigger
+ Query queryEvent = new Query();
+ queryEvent.setThreshold(100.00);
- String aggregateStmt = "insert into NewQuotes " +
- "select symbol, price from " +
- "pattern [every timer:interval(1 sec)], "+
- "sql:SamTestDB ['select symbol, price from quotes']";
+ generateInVMEvent(queryEvent);
- String pullStmt = "select * from NewQuotes.win:keepall()";
+ // evaluate
+ assertTrue("Listener not invoked", bufferedOutput.isInvoked());
+ EventMessage[] eventMessages = bufferedOutput.getLastNewData();
+ assertEquals(3, eventMessages.length);
- // create two views
- eventProcessor.registerStatement("PullAPI", aggregateStmt);
- ProcessingStatement stmt = eventProcessor.registerStatement("QuotestPull", pullStmt);
+ dump(eventMessages);
+ }
- boolean receivedData = false;
- Iterator<EventBean> it = ((EsperProcessingStatement)stmt).getUnderlying().iterator();
- while(it.hasNext())
+ private void dump(EventMessage[] eventMessages)
+ {
+ for(EventMessage event : eventMessages)
{
- EventBean event = it.next();
- System.out.println("symbol/price -> " + event.get("symbol") + "/" + event.get("price"));
- receivedData = true;
+ System.out.println(event.getProperty("symbol") + " -> " + event.getProperty("price") );
}
-
- assertTrue("Pull API failed, no data received", receivedData);
-
- */
}
+
}
Modified: sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/Query.java
===================================================================
--- sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/Query.java 2008-08-14 07:47:10 UTC (rev 246)
+++ sam/trunk/modules/core/src/test/java/org/jboss/test/sam/database/Query.java 2008-08-14 09:12:19 UTC (rev 247)
@@ -27,7 +27,13 @@
public class Query
{
public String criteria;
+ public double threshold = 0.00;
+ public Query()
+ {
+ this("%");
+ }
+
public Query(String criteria)
{
this.criteria = criteria;
@@ -43,4 +49,14 @@
{
this.criteria = criteria;
}
+
+ public double getThreshold()
+ {
+ return threshold;
+ }
+
+ public void setThreshold(double threshold)
+ {
+ this.threshold = threshold;
+ }
}
Added: sam/trunk/modules/core/src/test/resources/database/sampleJoin.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/database/sampleJoin.drl (rev 0)
+++ sam/trunk/modules/core/src/test/resources/database/sampleJoin.drl 2008-08-14 09:12:19 UTC (rev 247)
@@ -0,0 +1,15 @@
+package org.jboss.test.sam.database;
+
+import java.util.*;
+
+global org.jboss.sam.internal.drools.SAMAdapter SAM;
+
+rule "Pull any quote for certain threshold"
+when
+ $query: Query(threshold>99);
+ $sqlStream: ArrayList() from collect (
+ Map(this['price']>$query.threshold) from SAM.query("hsqlDB", "SELECT symbol, price FROM quotes")
+ );
+then
+ SAM.getListener("InVM").update($sqlStream);
+end
\ No newline at end of file
Deleted: sam/trunk/modules/core/src/test/resources/database/test.drl
===================================================================
--- sam/trunk/modules/core/src/test/resources/database/test.drl 2008-08-14 07:47:10 UTC (rev 246)
+++ sam/trunk/modules/core/src/test/resources/database/test.drl 2008-08-14 09:12:19 UTC (rev 247)
@@ -1,15 +0,0 @@
-package org.jboss.test.sam.database;
-
-import java.util.*;
-
-global org.jboss.sam.internal.drools.SAMAdapter SAM;
-
-rule "Simple SQL pull"
-when
- $query: Query();
- $sqlStream: ArrayList() from collect (
- Map() from SAM.query("hsqlDB", "SELECT symbol, price FROM quotes WHERE symbol like ('"+$query.criteria+"')")
- );
-then
- SAM.getListener("InVM").update($sqlStream);
-end
\ No newline at end of file
Copied: sam/trunk/modules/core/src/test/resources/database/triggerPull.drl (from rev 246, sam/trunk/modules/core/src/test/resources/database/test.drl)
===================================================================
--- sam/trunk/modules/core/src/test/resources/database/triggerPull.drl (rev 0)
+++ sam/trunk/modules/core/src/test/resources/database/triggerPull.drl 2008-08-14 09:12:19 UTC (rev 247)
@@ -0,0 +1,15 @@
+package org.jboss.test.sam.database;
+
+import java.util.*;
+
+global org.jboss.sam.internal.drools.SAMAdapter SAM;
+
+rule "Pull any quote by symbol"
+when
+ $query: Query(threshold==0.00);
+ $sqlStream: ArrayList() from collect (
+ Map() from SAM.query("hsqlDB", "SELECT symbol, price FROM quotes WHERE symbol like ('"+$query.criteria+"')")
+ );
+then
+ SAM.getListener("InVM").update($sqlStream);
+end
More information about the overlord-commits
mailing list