[jboss-svn-commits] JBL Code SVN: r17339 - labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Dec 20 10:34:08 EST 2007
Author: shabino
Date: 2007-12-20 10:34:08 -0500 (Thu, 20 Dec 2007)
New Revision: 17339
Modified:
labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/AbstractDispatchTest.java
labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestDerivations.java
labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoreManagement.java
labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoring.java
labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java
Log:
Additional unit tests
Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/AbstractDispatchTest.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/AbstractDispatchTest.java 2007-12-20 15:06:18 UTC (rev 17338)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/AbstractDispatchTest.java 2007-12-20 15:34:08 UTC (rev 17339)
@@ -7,10 +7,21 @@
import org.drools.FactHandle;
import org.drools.ObjectFilter;
+import org.drools.QueryResult;
+import org.drools.QueryResults;
import org.drools.WorkingMemory;
import benchmarks.dispatch.DispatchWrapper;
+import benchmarks.dispatch.fact.derived.Exclusion;
+import benchmarks.dispatch.fact.derived.Info;
+import benchmarks.dispatch.fact.derived.Score;
+import benchmarks.dispatch.fact.derived.ScoreComponent;
+import benchmarks.dispatch.fact.derived.WorkerInfo;
import benchmarks.dispatch.fact.independent.DispatchState;
+import benchmarks.dispatch.fact.independent.Job;
+import benchmarks.dispatch.fact.independent.VehicleSize;
+import benchmarks.dispatch.fact.independent.Worker;
+import benchmarks.dispatch.fact.independent.WorkerPosition;
public class AbstractDispatchTest extends TestCase {
@@ -37,7 +48,43 @@
ds.setCurrentTime(newTime);
wm.update(dispatchStateFactHandle, ds);
}
+
+ protected static class Couple {
+ public Worker worker;
+ public WorkerPosition workerPosition;
+ public Job job;
+
+ }
+
+ protected Couple createNeighboringCouple(){
+ Couple c = new Couple();
+
+ Job job = new Job();
+ job.setJobId("X");
+ job.setStatus(Job.Status.PENDING);
+ job.setVehicleSizeRequired(VehicleSize.SMALL);
+ job.setStartTime(ds.getCurrentTime());
+ job.setLatitude(-99D);
+ job.setLongitude(-99D);
+ c.job = job;
+ Worker w = new Worker();
+ w.setWorkerId("X");
+ w.setStatus(Worker.Status.WAITING_FOR_JOB);
+ w.setVehicleSize(VehicleSize.SMALL);
+ c.worker = w;
+
+ WorkerPosition wp = new WorkerPosition();
+ wp.setLatitude(-100D);
+ wp.setLongitude(-100D);
+ wp.setWorkerId("X");
+
+ c.workerPosition = wp;
+
+ return c;
+
+ }
+
protected void assertFactExists(Class factClass, String message) {
assertTrue(message, hasFact(factClass));
}
@@ -51,7 +98,67 @@
Iterator it = wm.iterateObjects(new TypeFilter(factClass));
return it.hasNext();
}
+
+ protected WorkerInfo getWorkerInfo(String workerId, WorkerInfo.Type type) {
+ QueryResults qrs = wm.getQueryResults("getWorkerInfo", new Object[] {
+ workerId, type });
+ if (qrs.size() == 0)
+ return null;
+ QueryResult qr = qrs.get(0);
+ if (qr.size() == 0)
+ return null;
+ return (WorkerInfo) qr.get(0);
+ }
+
+ protected Info getInfo(String workerId, String jobId, Info.Type type) {
+ QueryResults qrs = wm.getQueryResults("getInfo", new Object[] {
+ workerId, jobId, type });
+ if (qrs.size() == 0)
+ return null;
+ QueryResult qr = qrs.get(0);
+ if (qr.size() == 0)
+ return null;
+ return (Info) qr.get(0);
+
+ }
+
+ protected Exclusion getExclusion(String workerId, String jobId, Exclusion.Type type) {
+ QueryResults qrs = wm.getQueryResults("getExclusion", new Object[] {
+ workerId, jobId, type });
+ if (qrs.size() == 0)
+ return null;
+ QueryResult qr = qrs.get(0);
+ if (qr.size() == 0)
+ return null;
+ return (Exclusion) qr.get(0);
+
+ }
+
+ protected Score getScore(String workerId, String jobId) {
+ QueryResults qrs = wm.getQueryResults("getScore", new Object[] {
+ workerId, jobId });
+ if (qrs.size() == 0)
+ return null;
+ QueryResult qr = qrs.get(0);
+ if (qr.size() == 0)
+ return null;
+ return (Score) qr.get(0);
+
+ }
+
+ protected ScoreComponent getScoreComponent(String workerId, String jobId, ScoreComponent.Type type) {
+ QueryResults qrs = wm.getQueryResults("getScoreComponent", new Object[] {
+ workerId, jobId, type });
+ if (qrs.size() == 0)
+ return null;
+ QueryResult qr = qrs.get(0);
+ if (qr.size() == 0)
+ return null;
+ return (ScoreComponent) qr.get(0);
+
+ }
+
private static class TypeFilter implements ObjectFilter {
Class c;
Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestDerivations.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestDerivations.java 2007-12-20 15:06:18 UTC (rev 17338)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestDerivations.java 2007-12-20 15:34:08 UTC (rev 17339)
@@ -154,27 +154,4 @@
//TODO
}
- private WorkerInfo getWorkerInfo(String workerId, WorkerInfo.Type type) {
- QueryResults qrs = wm.getQueryResults("getWorkerInfo", new Object[] {
- workerId, type });
- if (qrs.size() == 0)
- return null;
- QueryResult qr = qrs.get(0);
- if (qr.size() == 0)
- return null;
- return (WorkerInfo) qr.get(0);
-
- }
-
- private Info getInfo(String workerId, String jobId, Info.Type type) {
- QueryResults qrs = wm.getQueryResults("getInfo", new Object[] {
- workerId, jobId, type });
- if (qrs.size() == 0)
- return null;
- QueryResult qr = qrs.get(0);
- if (qr.size() == 0)
- return null;
- return (Info) qr.get(0);
-
- }
}
Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoreManagement.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoreManagement.java 2007-12-20 15:06:18 UTC (rev 17338)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoreManagement.java 2007-12-20 15:34:08 UTC (rev 17339)
@@ -1,5 +1,25 @@
package benchmarks.dispatch.test;
+import java.util.Date;
+
+import benchmarks.dispatch.fact.derived.Score;
+
public class TestScoreManagement extends AbstractDispatchTest {
-
+ public void testScoreExists() throws Exception {
+ Couple c = createNeighboringCouple();
+
+ c.job.setStartTime(new Date());
+
+ c.worker.setTimeAvailable(new Date());
+
+ wm.insert(c.job);
+ wm.insert(c.worker);
+ wm.insert(c.workerPosition);
+
+ wm.fireAllRules();
+
+ Score score = getScore(c.job.getJobId(), c.worker.getWorkerId());
+
+ assertNotNull("No score computed", score);
+ }
}
Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoring.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoring.java 2007-12-20 15:06:18 UTC (rev 17338)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestScoring.java 2007-12-20 15:34:08 UTC (rev 17339)
@@ -1,5 +1,47 @@
package benchmarks.dispatch.test;
+import java.util.Date;
+
+import org.drools.FactHandle;
+
+import benchmarks.dispatch.fact.derived.ScoreComponent;
+
public class TestScoring extends AbstractDispatchTest {
+ public void testDefaultScore() throws Exception {
+ Couple c = createNeighboringCouple();
+
+ c.job.setStartTime(new Date());
+
+ c.worker.setTimeAvailable(new Date());
+
+ wm.insert(c.job);
+ wm.insert(c.worker);
+ wm.insert(c.workerPosition);
+
+ wm.fireAllRules();
+
+ ScoreComponent sc = getScoreComponent(c.job.getJobId(), c.worker.getWorkerId(),
+ ScoreComponent.Type.DEFAULT);
+ assertTrue("Default score component not present", sc != null);
+ }
+
+ public void testLateToJobScore() throws Exception {
+ Couple c = createNeighboringCouple();
+
+ c.job.setStartTime(new Date());
+
+ c.worker.setTimeAvailable(new Date());
+
+ wm.insert(c.job);
+ wm.insert(c.worker);
+ wm.insert(c.workerPosition);
+
+ wm.fireAllRules();
+
+ ScoreComponent sc = getScoreComponent(c.job.getJobId(), c.worker.getWorkerId(),
+ ScoreComponent.Type.LATE_TO_JOB);
+
+ assertTrue("Score component not present", sc != null);
+ }
}
Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java 2007-12-20 15:06:18 UTC (rev 17338)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java 2007-12-20 15:34:08 UTC (rev 17339)
@@ -1,5 +1,65 @@
package benchmarks.dispatch.test;
+import benchmarks.dispatch.fact.derived.Exclusion;
+import benchmarks.dispatch.fact.independent.VehicleSize;
+
public class TestWorkerEligibility extends AbstractDispatchTest {
+ public void testWrenchRule() throws Exception {
+
+ Couple c = createNeighboringCouple();
+
+ c.job.setVehicleSizeRequired(VehicleSize.EXTRA_LARGE);
+ c.worker.setVehicleSize(VehicleSize.LARGE);
+ wm.insert(c.job);
+ wm.insert(c.worker);
+ wm.insert(c.workerPosition);
+
+
+ wm.fireAllRules();
+
+ assertTrue("Exclusion for Vehicle Size Not Present", getExclusion(c.job.getJobId(), c.worker.getWorkerId(),
+ Exclusion.Type.VEHICLE_SIZE) != null);
+
+ }
+
+ public void testRocksRule() throws Exception {
+
+ Couple c = createNeighboringCouple();
+
+ c.job.setNumberOfRocksRequired(2);
+ c.worker.setNumberOfRocks(1);
+
+ wm.insert(c.job);
+ wm.insert(c.worker);
+ wm.insert(c.workerPosition);
+
+
+ wm.fireAllRules();
+
+ assertTrue("Exclusion for Number of Rocks Not Present", getExclusion(c.job.getJobId(), c.worker.getWorkerId(),
+ Exclusion.Type.NUM_ROCKS) != null);
+
+ }
+
+ public void testSticksRule() throws Exception {
+
+ Couple c = createNeighboringCouple();
+
+ c.job.setNumberOfSticksRequired(1);
+ c.worker.setNumberOfSticks(0);
+
+ wm.insert(c.job);
+ wm.insert(c.worker);
+ wm.insert(c.workerPosition);
+
+
+ wm.fireAllRules();
+
+ assertTrue("Exclusion for Number of Sticks Not Present", getExclusion(c.job.getJobId(), c.worker.getWorkerId(),
+ Exclusion.Type.NUM_STICKS) != null);
+
+ }
+
+
}
More information about the jboss-svn-commits
mailing list