[jbehave-scm] [1014] trunk/jbehave-core/src/java/org/jbehave/scenario/parser: JBEHAVE-154: Moved separation ":" to scenario keyword.

2008-12-14 Thread mauro
Title:  [1014] trunk/jbehave-core/src/java/org/jbehave/scenario/parser: JBEHAVE-154:  Moved separation ":" to scenario keyword.







Revision 1014
Author mauro
Date 2008-12-14 13:13:56 -0600 (Sun, 14 Dec 2008)


Log Message
JBEHAVE-154:  Moved separation ":" to scenario keyword.

Modified Paths

trunk/examples/noughtsandcrosses/src/scenario/com/lunivore/noughtsandcrosses/PlayersCanHazTurns.java
trunk/jbehave-core/src/java/org/jbehave/scenario/definition/ScenarioGivenWhenThenAnd.java
trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java




Diff

Modified: trunk/examples/noughtsandcrosses/src/scenario/com/lunivore/noughtsandcrosses/PlayersCanHazTurns.java (1013 => 1014)

--- trunk/examples/noughtsandcrosses/src/scenario/com/lunivore/noughtsandcrosses/PlayersCanHazTurns.java	2008-11-29 16:54:30 UTC (rev 1013)
+++ trunk/examples/noughtsandcrosses/src/scenario/com/lunivore/noughtsandcrosses/PlayersCanHazTurns.java	2008-12-14 19:13:56 UTC (rev 1014)
@@ -28,7 +28,7 @@
 public PlayersCanHazTurns(final ClassLoader classLoader, OAndXUniverse universe) {
 super(new MostUsefulConfiguration() {
 public KeyWords keywords() {
-return new KeyWords("I can haz", "Gief", "Wen", "Den", "And");
+return new KeyWords("I can haz:", "Gief", "Wen", "Den", "And");
 }
 public ClasspathScenarioDefiner forDefiningScenarios() {
 return new ClasspathScenarioDefiner(new UnderscoredCamelCaseResolver(), new PatternScenarioParser(this),


Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/definition/ScenarioGivenWhenThenAnd.java (1013 => 1014)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/definition/ScenarioGivenWhenThenAnd.java	2008-11-29 16:54:30 UTC (rev 1013)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/definition/ScenarioGivenWhenThenAnd.java	2008-12-14 19:13:56 UTC (rev 1014)
@@ -3,7 +3,7 @@
 public class ScenarioGivenWhenThenAnd extends KeyWords {
 
 public ScenarioGivenWhenThenAnd() {
-super("Scenario", "Given", "When", "Then", "And");
+super("Scenario:", "Given", "When", "Then", "And");
 }
 
 }


Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java (1013 => 1014)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java	2008-11-29 16:54:30 UTC (rev 1013)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java	2008-12-14 19:13:56 UTC (rev 1014)
@@ -57,7 +57,7 @@
 }
 
 private Blurb parseBlurbFrom(String wholeStoryAsString) {
-Pattern findStoryBlurb = Pattern.compile("(.*?)(" + configuration.keywords().scenario() + ":).*",
+Pattern findStoryBlurb = Pattern.compile("(.*?)(" + configuration.keywords().scenario() + ").*",
 Pattern.DOTALL);
 Matcher matcher = findStoryBlurb.matcher(wholeStoryAsString);
 if (matcher.find()) {
@@ -85,14 +85,14 @@
 }
 
 private Pattern patternToPullScenariosIntoGroupFour() {
-return Pattern.compile(".*?((Scenario:) (.|\\s)*?)\\s*(\\Z|Scenario:).*".replace("Scenario", configuration
+return Pattern.compile(".*?((Scenario) (.|\\s)*?)\\s*(\\Z|Scenario).*".replace("Scenario", configuration
 .keywords().scenario()), Pattern.DOTALL);
 }
 
 private Pattern patternToPullScenarioTitlesIntoGroupOne() {
 String concatenatedKeywords = concatenateWithOr(configuration.keywords().given(), configuration.keywords()
 .when(), configuration.keywords().then(), configuration.keywords().others());
-return Pattern.compile(configuration.keywords().scenario() + ":(.*?)\\s*(" + concatenatedKeywords + ").*");
+return Pattern.compile(configuration.keywords().scenario() + "(.*?)\\s*(" + concatenatedKeywords + ").*");
 }
 
 private String concatenateWithOr(String given, String when, String then, String[] others) {
@@ -134,6 +134,6 @@
 String givenWhenThenSpaced = concatenateWithSpaceOr(configuration.keywords().given(), configuration.keywords().when(),
 		configuration.keywords().then(), configuration.keywords().others());
 return Pattern.compile("((" + givenWhenThen + ") (.|\\s)*?)\\s*(\\Z|" + givenWhenThenSpaced + "|"
-+ configuration.keywords().scenario() + ":)");
++ configuration.keywords().scenario() + ")");
 }
 }










To unsubscribe from this list please visit:


http://xircles.codehaus.org/manage_email



[jbehave-dev] [jira] Closed: (JBEHAVE-154) Scenario keyword should include any separation char, e.g. ":"

2008-12-14 Thread Mauro Talevi (JIRA)

 [ 
http://jira.codehaus.org/browse/JBEHAVE-154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mauro Talevi closed JBEHAVE-154.


Resolution: Fixed

> Scenario keyword should include any separation char, e.g. ":"
> -
>
> Key: JBEHAVE-154
> URL: http://jira.codehaus.org/browse/JBEHAVE-154
> Project: JBehave
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 2.0, 2.0.1, 2.1
>Reporter: Mauro Talevi
>Assignee: Mauro Talevi
>Priority: Minor
> Fix For: 2.2
>
>
> ATM, the pattern parser assumes that the keyword Scenario is followed by a 
> ":".   It is better that any separation char to be part of the keyword 
> configured in Keywords.scenario() so it can be configured and is not 
> hardcorded in the pattern parser.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email




[jbehave-dev] [jira] Created: (JBEHAVE-154) Scenario keyword should include any separation char, e.g. ":"

2008-12-14 Thread Mauro Talevi (JIRA)
Scenario keyword should include any separation char, e.g. ":"
-

 Key: JBEHAVE-154
 URL: http://jira.codehaus.org/browse/JBEHAVE-154
 Project: JBehave
  Issue Type: Improvement
  Components: Core
Affects Versions: 2.0, 2.0.1, 2.1
Reporter: Mauro Talevi
Assignee: Mauro Talevi
Priority: Minor
 Fix For: 2.2


ATM, the pattern parser assumes that the keyword Scenario is followed by a ":". 
  It is better that any separation char to be part of the keyword configured in 
Keywords.scenario() so it can be configured and is not hardcorded in the 
pattern parser.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email




[jbehave-scm] [1015] trunk/jbehave-core/src/java/org/jbehave/scenario/parser: Extracted abstract scenario name resolver that holds common functionality to all resolvers.

2008-12-14 Thread mauro
Title:  [1015] trunk/jbehave-core/src/java/org/jbehave/scenario/parser: Extracted abstract scenario name resolver that holds common functionality to all resolvers.







Revision 1015
Author mauro
Date 2008-12-14 13:32:53 -0600 (Sun, 14 Dec 2008)


Log Message
Extracted abstract scenario name resolver that holds common functionality to all resolvers.

Modified Paths

trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java
trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java


Added Paths

trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java




Diff

Added: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java (0 => 1015)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java	(rev 0)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java	2008-12-14 19:32:53 UTC (rev 1015)
@@ -0,0 +1,14 @@
+package org.jbehave.scenario.parser;
+
+import org.jbehave.scenario.RunnableScenario;
+
+public abstract class AbstractScenarioNameResolver implements ScenarioNameResolver {
+
+	static final String DOT_REGEX = "\\.";
+static final String SLASH = "/";
+
+protected String toPackageDir(Class scenarioClass) {
+		return scenarioClass.getPackage().getName().replaceAll(DOT_REGEX, SLASH);
+	}
+
+}
\ No newline at end of file


Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java (1014 => 1015)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java	2008-12-14 19:13:56 UTC (rev 1014)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/CasePreservingResolver.java	2008-12-14 19:32:53 UTC (rev 1015)
@@ -13,10 +13,8 @@
  * "org/jbehave/scenario/ICanLogin.scenario".
  * 
  */
-public class CasePreservingResolver implements ScenarioNameResolver {
+public class CasePreservingResolver extends AbstractScenarioNameResolver {
 
-private static final String DOT_REGEX = "\\.";
-private static final String SLASH = "/";
 private final String extension;
 
 public CasePreservingResolver(String extension) {
@@ -24,8 +22,7 @@
 }
 
 public String resolve(Class scenarioClass) {
-String packageDir = scenarioClass.getPackage().getName().replaceAll(DOT_REGEX, SLASH);
-return packageDir + SLASH + scenarioClass.getSimpleName() + extension;
+	return toPackageDir(scenarioClass) + SLASH + scenarioClass.getSimpleName() + extension;
 }
 
 }


Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java (1014 => 1015)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java	2008-12-14 19:13:56 UTC (rev 1014)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java	2008-12-14 19:32:53 UTC (rev 1015)
@@ -16,17 +16,15 @@
  * "org/jbehave/scenario/i_can_login.scenario".
  * 
  */
-public class UnderscoredCamelCaseResolver implements ScenarioNameResolver {
+public class UnderscoredCamelCaseResolver extends AbstractScenarioNameResolver {
 
-private static final String EMPTY = "";
-	private static final String DOT_REGEX = "\\.";
-private static final String SLASH = "/";
-private static final String PATTERN = "([A-Z0-9].*?)([A-Z0-9]|\\z)";
+private static final String DEFAULT_EXTENSION = "";
+private static final String SIMPLE_TO_UNDERSCORED_PATTERN = "([A-Z0-9].*?)([A-Z0-9]|\\z)";
 private static final String UNDERSCORE = "_";
 private final String extension;
 
 public UnderscoredCamelCaseResolver() {
-this(EMPTY);
+this(DEFAULT_EXTENSION);
 }
 
 public UnderscoredCamelCaseResolver(String extension) {
@@ -34,8 +32,11 @@
 }
 
 public String resolve(Class scenarioClass) {
-String packageDir = scenarioClass.getPackage().getName().replaceAll(DOT_REGEX, SLASH);
-Matcher matcher = Pattern.compile(PATTERN).matcher(scenarioClass.getSimpleName());
+return toPackageDir(scenarioClass) + SLASH + toUnderscoredName(scenarioClass.getSimpleName()) + extension;
+}
+
+	private String toUnderscoredName(String simpleName) {
+		Matcher matcher = Pattern.compile(SIMPLE_TO_UNDERSCORED_PATTERN).matcher(simpleName);
 int startAt = 0;
 StringBuilder builder = new StringBuilder();
 while (matcher.find(startAt)) {
@@ -43,9 +44,7 @@
 builder.append(UNDERSCORE);
 startAt = matcher.start(2);
 }
+return builder.substring(0, builder.length() - 1);
+	}
 
-String underscoredName = builder.substring(0, builder.length() - 1);
-return packageDir + SLASH + underscoredName + extension;
-}
-
 }










To unsubscribe from this list please visit:


http://xircles.codehaus.org/manage_email



[jbehave-scm] [1016] trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java: JBEHAVE-152: Ensured default package scenario classes are supported and return empty pa

2008-12-14 Thread mauro
Title:  [1016] trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java: JBEHAVE-152: Ensured default package scenario classes are supported and return empty package  dir.







Revision 1016
Author mauro
Date 2008-12-14 16:30:37 -0600 (Sun, 14 Dec 2008)


Log Message
JBEHAVE-152: Ensured default package scenario classes are supported and return empty package  dir.

Modified Paths

trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java




Diff

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

--- trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java	2008-12-14 19:32:53 UTC (rev 1015)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/parser/AbstractScenarioNameResolver.java	2008-12-14 22:30:37 UTC (rev 1016)
@@ -6,9 +6,14 @@
 
 	static final String DOT_REGEX = "\\.";
 static final String SLASH = "/";
+	static final String EMPTY = "";
 
 protected String toPackageDir(Class scenarioClass) {
-		return scenarioClass.getPackage().getName().replaceAll(DOT_REGEX, SLASH);
+		Package scenarioPackage = scenarioClass.getPackage();
+		if ( scenarioPackage != null ){
+			return scenarioPackage.getName().replaceAll(DOT_REGEX, SLASH);			
+		}
+		return EMPTY;
 	}
 
 }
\ No newline at end of file










To unsubscribe from this list please visit:


http://xircles.codehaus.org/manage_email



[jbehave-dev] [jira] Commented: (JBEHAVE-152) Scenario's in the default package cause NullPointerException

2008-12-14 Thread Mauro Talevi (JIRA)

[ 
http://jira.codehaus.org/browse/JBEHAVE-152?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=157965#action_157965
 ] 

Mauro Talevi commented on JBEHAVE-152:
--

Committed fix but not the unit test as I could not get it to recognise the 
default package scenario class. 

> Scenario's in the default package cause NullPointerException
> 
>
> Key: JBEHAVE-152
> URL: http://jira.codehaus.org/browse/JBEHAVE-152
> Project: JBehave
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 2.0, 2.0.1, 2.1
> Environment: Windows XP
>Reporter: Andy Mac Gilvery
>Assignee: Mauro Talevi
>Priority: Minor
> Fix For: 2.2
>
> Attachments: JBehave.patch
>
>
> I'm playing around with JBehave, and encountered  the folloing 
> NullPointerException
> Testcase: testScenario(HeyHeyMyMy):Caused an ERROR
> null
> java.lang.NullPointerException
> at 
> org.jbehave.scenario.parser.UnderscoredCamelCaseResolver.resolve(UnderscoredCamelCaseResolver.java:37)
> at 
> org.jbehave.scenario.parser.ClasspathScenarioDefiner.loadInputStreamFor(ClasspathScenarioDefiner.java:52)
> at 
> org.jbehave.scenario.parser.ClasspathScenarioDefiner.loadScenarioDefinitionsFor(ClasspathScenarioDefiner.java:47)
> at 
> org.jbehave.scenario.AbstractScenario.runScenario(AbstractScenario.java:69)
> at 
> org.jbehave.scenario.JUnitScenario.runScenario(JUnitScenario.java:49)
> at 
> org.jbehave.scenario.JUnitScenario.testScenario(JUnitScenario.java:64)
> I've enclosed a patch for you consideration :-)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



-
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email