[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