Title: [1018] trunk/examples/gameoflife/scenarios: Added example of scenario loaded from default package.

Diff

Modified: trunk/examples/gameoflife/scenarios/pom.xml (1017 => 1018)

--- trunk/examples/gameoflife/scenarios/pom.xml	2008-12-26 15:58:43 UTC (rev 1017)
+++ trunk/examples/gameoflife/scenarios/pom.xml	2008-12-26 16:48:07 UTC (rev 1018)
@@ -34,13 +34,15 @@
         <artifactId>jbehave-maven-plugin</artifactId>
         <executions>
           <execution>
-            <id>run-scenarios-listed</id>
+            <id>run-scenarios</id>
             <phase>integration-test</phase>
             <configuration>
-              <scenarioClassNames>
-                <scenarioClassName>com.lunivore.gameoflife.ICanToggleACell</scenarioClassName>
-                <scenarioClassName>com.lunivore.gameoflife.TheGridStartsEmpty</scenarioClassName>
-              </scenarioClassNames>
+              <scenarioIncludes>
+                <scenarioInclude>**/*.java</scenarioInclude>
+              </scenarioIncludes>
+              <scenarioExcludes>
+                <scenarioExclude>**/*Steps.java</scenarioExclude>
+              </scenarioExcludes>
             </configuration>
             <goals>
               <goal>run-scenarios</goal>

Added: trunk/examples/gameoflife/src/scenario/ICanToggleACellFromDefaultPackage.java (0 => 1018)

--- trunk/examples/gameoflife/src/scenario/ICanToggleACellFromDefaultPackage.java	                        (rev 0)
+++ trunk/examples/gameoflife/src/scenario/ICanToggleACellFromDefaultPackage.java	2008-12-26 16:48:07 UTC (rev 1018)
@@ -0,0 +1,25 @@
+import org.jbehave.scenario.PropertyBasedConfiguration;
+import org.jbehave.scenario.JUnitScenario;
+import org.jbehave.scenario.parser.PatternScenarioParser;
+import org.jbehave.scenario.parser.ClasspathScenarioDefiner;
+import org.jbehave.scenario.parser.UnderscoredCamelCaseResolver;
+
+import com.lunivore.gameoflife.steps.GridSteps;
+
+public class ICanToggleACellFromDefaultPackage extends JUnitScenario {
+
+    public ICanToggleACellFromDefaultPackage() {
+        this(Thread.currentThread().getContextClassLoader());
+    }
+
+    public ICanToggleACellFromDefaultPackage(final ClassLoader classLoader) {
+        super(new PropertyBasedConfiguration() {
+            @Override
+            public ClasspathScenarioDefiner forDefiningScenarios() {
+                return new ClasspathScenarioDefiner(new UnderscoredCamelCaseResolver(), new PatternScenarioParser(this),
+                        classLoader);
+            }
+        });
+        addSteps(new GridSteps());
+    }
+}

Added: trunk/examples/gameoflife/src/scenario/i_can_toggle_a_cell_from_default_package (0 => 1018)

--- trunk/examples/gameoflife/src/scenario/i_can_toggle_a_cell_from_default_package	                        (rev 0)
+++ trunk/examples/gameoflife/src/scenario/i_can_toggle_a_cell_from_default_package	2008-12-26 16:48:07 UTC (rev 1018)
@@ -0,0 +1,22 @@
+Given a 5 by 5 game
+When I toggle the cell at (2, 3)
+Then the grid should look like
+.....
+.....
+.....
+..X..
+.....
+When I toggle the cell at (2, 4)
+Then the grid should look like
+.....
+.....
+.....
+..X..
+..X..
+When I toggle the cell at (2, 3)
+Then the grid should look like
+.....
+.....
+.....
+.....
+..X..

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java (1017 => 1018)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java	2008-12-26 15:58:43 UTC (rev 1017)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java	2008-12-26 16:48:07 UTC (rev 1018)
@@ -1,7 +1,5 @@
 package org.jbehave.scenario.parser;
 
-import static java.text.MessageFormat.format;
-
 import org.jbehave.scenario.RunnableScenario;
 
 public abstract class AbstractScenarioNameResolver implements
@@ -24,9 +22,24 @@
 	}
 
 	public String resolve(Class<? extends RunnableScenario> scenarioClass) {
-		return format(PATH_PATTERN, resolveDirectoryName(scenarioClass), resolveFileName(scenarioClass), extension);
+		String directoryName = resolveDirectoryName(scenarioClass);
+		String fileName = resolveFileName(scenarioClass);
+		return formatName(directoryName, fileName, extension);
 	}
 
+	private String formatName(String directoryName, String fileName,
+			String extension) {
+		StringBuffer sb = new StringBuffer();
+		if (directoryName.length() > 0) {
+			sb.append(directoryName).append(SLASH);
+		}
+		sb.append(fileName);
+		if (extension.length() > 0) {
+			sb.append(extension);
+		}
+		return sb.toString();
+	}
+
 	protected String resolveDirectoryName(
 			Class<? extends RunnableScenario> scenarioClass) {
 		Package scenarioPackage = scenarioClass.getPackage();
@@ -36,6 +49,7 @@
 		return EMPTY;
 	}
 
-	protected abstract String resolveFileName(Class<? extends RunnableScenario> scenarioClass);
+	protected abstract String resolveFileName(
+			Class<? extends RunnableScenario> scenarioClass);
 
 }
\ No newline at end of file


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to