[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