[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