[jboss-svn-commits] JBL Code SVN: r16683 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/testframework and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Nov 19 18:48:00 EST 2007
Author: michael.neale at jboss.com
Date: 2007-11-19 18:48:00 -0500 (Mon, 19 Nov 2007)
New Revision: 16683
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java
Log:
JBRULES-1271 determine available fact names
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java 2007-11-19 22:56:28 UTC (rev 16682)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java 2007-11-19 23:48:00 UTC (rev 16683)
@@ -112,8 +112,9 @@
/**
* This will return a list of fact names that are in scope (including globals).
+ * @return List<String>
*/
- public List getFactNamesInScope(ExecutionTrace ex) {
+ public List getFactNamesInScope(ExecutionTrace ex, boolean includeGlobals) {
if (ex == null) return new ArrayList();
List l = new ArrayList();
int p = this.fixtures.indexOf(ex);
@@ -128,14 +129,38 @@
}
}
- for (Iterator iterator = globals.iterator(); iterator.hasNext();) {
- FactData f = (FactData) iterator.next();
- l.add(f.name);
+ if (includeGlobals) {
+ for (Iterator iterator = globals.iterator(); iterator.hasNext();) {
+ FactData f = (FactData) iterator.next();
+ l.add(f.name);
+ }
}
return l;
}
/**
+ * @return true iff a fact name is already in use.
+ */
+ public boolean isFactNameExisting(String factName) {
+ for (Iterator iterator = globals.iterator(); iterator.hasNext();) {
+ FactData fd = (FactData) iterator.next();
+ if (fd.name.equals(factName)) {
+ return true;
+ }
+ }
+ for (Iterator iterator = fixtures.iterator(); iterator.hasNext();) {
+ Fixture f = (Fixture) iterator.next();
+ if (f instanceof FactData) {
+ FactData fd = (FactData) f;
+ if (fd.name.equals(factName)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
* @return true iff a fact is actually used (ie if its not, its safe to remove it).
*/
public boolean isFactNameUsed(FactData fd) {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java 2007-11-19 22:56:28 UTC (rev 16682)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioTest.java 2007-11-19 23:48:00 UTC (rev 16683)
@@ -103,19 +103,25 @@
ExecutionTrace ex2 = new ExecutionTrace();
sc.fixtures.add(ex2);
- List l = sc.getFactNamesInScope(ex1);
+ List l = sc.getFactNamesInScope(ex1, true);
+
assertEquals(3, l.size());
assertEquals("q", l.get(0));
assertEquals("z", l.get(1));
assertEquals("x", l.get(2));
- l = sc.getFactNamesInScope(ex2);
+
+ l = sc.getFactNamesInScope(ex1, false);
+ assertEquals(2, l.size());
+ assertFalse(l.contains(sc.globals.get(0)));
+
+ l = sc.getFactNamesInScope(ex2, true);
assertEquals(3, l.size());
assertEquals("q", l.get(0));
assertEquals("y", l.get(1));
assertEquals("x", l.get(2));
- l= sc.getFactNamesInScope(null);
+ l= sc.getFactNamesInScope(null, true);
assertEquals(0, l.size());
}
@@ -144,4 +150,19 @@
assertFalse(sc.isFactNameUsed(fd4));
}
+ public void testIsFactNameUsed() {
+ Scenario sc = new Scenario();
+ sc.globals.add(new FactData("X", "x", null, false));
+ sc.fixtures.add(new FactData("Q", "q", null, false));
+ sc.fixtures.add(new ExecutionTrace());
+
+ assertTrue(sc.isFactNameExisting("x"));
+ assertTrue(sc.isFactNameExisting("q"));
+ assertFalse(sc.isFactNameExisting("w"));
+
+
+ sc = new Scenario();
+ assertFalse(sc.isFactNameExisting("w"));
+ }
+
}
More information about the jboss-svn-commits
mailing list