[jboss-svn-commits] JBL Code SVN: r16375 - in labs/jbossrules/trunk/drools-jbrms/src: test/java/org/drools/brms/client/qa and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 6 05:06:36 EST 2007


Author: michael.neale at jboss.com
Date: 2007-11-06 05:06:36 -0500 (Tue, 06 Nov 2007)
New Revision: 16375

Added:
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioHelperTest.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioHelper.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java
Log:
JBRULES-1271 mapping between storage model and tabular layout on screen

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioHelper.java	2007-11-06 06:20:02 UTC (rev 16374)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioHelper.java	2007-11-06 10:06:36 UTC (rev 16375)
@@ -1,8 +1,18 @@
 package org.drools.brms.client.qa;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
+import org.drools.brms.client.modeldriven.testing.ExecutionTrace;
+import org.drools.brms.client.modeldriven.testing.Expectation;
+import org.drools.brms.client.modeldriven.testing.FactData;
 import org.drools.brms.client.modeldriven.testing.Fixture;
+import org.drools.brms.client.modeldriven.testing.RetractFact;
+import org.drools.brms.client.modeldriven.testing.VerifyFact;
+import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
 
 /**
  * Some utility methods as the display logic is a bit hairy.
@@ -10,10 +20,56 @@
 public class ScenarioHelper {
 
 
-	//this can be a bit like an iterator, where we can ask for chunks of certain types (and it will return them in order)
-	//also can use it to find success/failure/results etc and present them.
-	public Fixture[][] chunk(List fixtures) {
-		return null;
+
+
+	/**
+	 * Called lumpy map - as this takes a flat list of fixtures, and groups things together.
+	 * It will return a list - of which each element will either be a list - or a map.
+	 * If its a map - then its a map of FactData to the fact type. If its a list, then it will be
+	 * expectations or retractions.
+	 *
+	 * Man, this will be so much nicer with generics.
+	 * @return List<List<Expectation or RetractFact> OR Map<String, List<FactData>> OR ExecutionTrace>
+	 */
+	public List lumpyMap(List fixtures) {
+		List output = new ArrayList();
+
+		Map dataInput = new HashMap();
+		List expectations = new ArrayList();
+		List retractFacts = new ArrayList();
+
+
+		for (Iterator iterator = fixtures.iterator(); iterator.hasNext();) {
+			Fixture f = (Fixture) iterator.next();
+			if (f instanceof FactData) {
+				FactData fd = (FactData) f;
+				if (! dataInput.containsKey(fd.type)) {
+					dataInput.put(fd.type, new ArrayList());
+				}
+				((List) dataInput.get(fd.type)).add(fd);
+			} else if (f instanceof RetractFact) {
+				retractFacts.add(f);
+			} else if (f instanceof Expectation) {
+				expectations.add(f);
+			} else if (f instanceof ExecutionTrace) {
+				if (expectations.size() > 0) output.add(expectations);
+				if (retractFacts.size() > 0) output.add(retractFacts);
+				if (dataInput.size() > 0) output.add(dataInput);
+				output.add(f);
+
+				expectations = new ArrayList();
+				retractFacts = new ArrayList();
+				dataInput = new HashMap();
+			}
+		}
+		return output;
 	}
 
+
+
+
+
+
 }
+
+

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java	2007-11-06 06:20:02 UTC (rev 16374)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/qa/ScenarioWidget.java	2007-11-06 10:06:36 UTC (rev 16375)
@@ -82,12 +82,12 @@
         VerticalPanel factPanel = new VerticalPanel();
         for (Iterator iterator = facts.entrySet().iterator(); iterator.hasNext();) {
             Map.Entry e = (Map.Entry) iterator.next();
-            factPanel.add(new DataInputWidget((String)e.getKey(), facts, false, false));
+            factPanel.add(new DataInputWidget((String)e.getKey(), (List) facts.get(e.getKey()), false, false));
         }
         VerticalPanel globalPanel = new VerticalPanel();
         for (Iterator iterator = globals.entrySet().iterator(); iterator.hasNext();) {
             Map.Entry e = (Map.Entry) iterator.next();
-            globalPanel.add(new DataInputWidget((String)e.getKey(), globals, true, false));
+            globalPanel.add(new DataInputWidget((String)e.getKey(), (List) globals.get(e.getKey()), true, false));
         }
 
         ExecutionTrace ex = new ExecutionTrace();
@@ -156,7 +156,7 @@
 class DataInputWidget extends Composite {
 
 
-    public DataInputWidget(String factType, Map facts, boolean isGlobal, boolean isModify) {
+    public DataInputWidget(String factType, List defList, boolean isGlobal, boolean isModify) {
 
         Grid outer = new Grid(2, 1);
         outer.getCellFormatter().setStyleName(0, 0, "modeller-fact-TypeHeader");
@@ -177,7 +177,7 @@
         //This will work out what row is for what field
         Map fields = new HashMap();
         int col = 0;
-        List defList = (List) facts.get(factType);
+
         for (Iterator iterator = defList.iterator(); iterator.hasNext();) {
             FactData d = (FactData) iterator.next();
             for (int i = 0; i < d.fieldData.length; i++) {

Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioHelperTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioHelperTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioHelperTest.java	2007-11-06 10:06:36 UTC (rev 16375)
@@ -0,0 +1,100 @@
+package org.drools.brms.client.qa;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.brms.client.modeldriven.testing.ExecutionTrace;
+import org.drools.brms.client.modeldriven.testing.FactData;
+import org.drools.brms.client.modeldriven.testing.FieldData;
+import org.drools.brms.client.modeldriven.testing.RetractFact;
+import org.drools.brms.client.modeldriven.testing.VerifyFact;
+import org.drools.brms.client.modeldriven.testing.VerifyRuleFired;
+
+import junit.framework.TestCase;
+
+public class ScenarioHelperTest extends TestCase {
+
+
+	//need to get out chunks, so we get data (insert, update, retract)
+	//then execute
+	//then expectations
+	//then data
+	//then execute
+
+	//want it in chunks
+
+	public void testChunks() {
+		List l = new ArrayList();
+		l.add(new FactData("Q", "x", new FieldData[0], false));
+		l.add(new FactData("Q", "y", new FieldData[0], false));
+		l.add(new FactData("X", "a", new FieldData[0], false));
+		l.add(new FactData("X", "b", new FieldData[0], false));
+		ExecutionTrace ex1 = new ExecutionTrace();
+		l.add(ex1);
+
+		l.add(new FactData("Z", "z", new FieldData[0], false));
+		l.add(new FactData("Q", "x", new FieldData[0], true));
+		l.add(new FactData("Q", "y", new FieldData[0], true));
+		l.add(new RetractFact("y"));
+
+		VerifyFact vf1 = new VerifyFact();
+		VerifyFact vf2 = new VerifyFact();
+		VerifyRuleFired vr1 = new VerifyRuleFired();
+		VerifyRuleFired vr2 = new VerifyRuleFired();
+		l.add(vf1);
+		l.add(vf2);
+		l.add(vr1);
+		l.add(vr2);
+
+		ExecutionTrace ex2 = new ExecutionTrace();
+		l.add(ex2);
+
+		ScenarioHelper hlp = new ScenarioHelper();
+
+		List fx = hlp.lumpyMap(l);
+		assertEquals(6, fx.size());
+
+		Map first  = (Map) fx.get(0);
+		assertEquals(2, first.size());
+		List fdl = (List) first.get("Q");
+		assertEquals(2, fdl.size());
+		FactData fd = (FactData) fdl.get(0);
+		assertEquals("x", fd.name);
+		fd = (FactData) fdl.get(1);
+		assertEquals("y", fd.name);
+
+		fdl = (List) first.get("X");
+		assertEquals(2, fdl.size());
+		fd = (FactData) fdl.get(0);
+		assertEquals("a", fd.name);
+
+		assertEquals(ex1, fx.get(1));
+
+		List expectations = (List) fx.get(2);
+		assertEquals(4, expectations.size());
+		assertEquals(vf1, expectations.get(0));
+
+
+		List retracts = (List) fx.get(3);
+		assertEquals(1, retracts.size());
+		RetractFact ret = (RetractFact) retracts.get(0);
+		assertEquals("y", ret.name);
+
+
+		Map second = (Map) fx.get(4);
+		assertEquals(2, second.size());
+		assertTrue(second.containsKey("Z"));
+		assertTrue(second.containsKey("Q"));
+		fdl = (List) second.get("Q");
+		assertEquals(2, fdl.size());
+
+		assertEquals(ex2, fx.get(5));
+
+
+
+
+	}
+
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/qa/ScenarioHelperTest.java
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list