[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