- Revision
- 1603
- Author
- paul
- Date
- 2010-03-19 13:55:53 -0500 (Fri, 19 Mar 2010)
Log Message
a hybridized resolving strategy
Modified Paths
- trunk/core/jbehave-core/src/behaviour/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolverBehaviour.java
- trunk/core/jbehave-core/src/main/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java
Diff
Modified: trunk/core/jbehave-core/src/behaviour/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolverBehaviour.java (1602 => 1603)
--- trunk/core/jbehave-core/src/behaviour/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolverBehaviour.java 2010-03-15 23:33:32 UTC (rev 1602) +++ trunk/core/jbehave-core/src/behaviour/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolverBehaviour.java 2010-03-19 18:55:53 UTC (rev 1603) @@ -1,12 +1,12 @@ package org.jbehave.scenario.parser; +import org.jbehave.scenario.JUnitScenario; +import org.junit.Test; + import static org.hamcrest.CoreMatchers.equalTo; import static org.jbehave.Ensure.ensureThat; import static org.jbehave.scenario.parser.UnderscoredCamelCaseResolver.NUMBERS_AS_UPPER_CASE_LETTERS_PATTERN; -import org.jbehave.scenario.JUnitScenario; -import org.junit.Test; - public class UnderscoredCamelCaseResolverBehaviour { @Test @@ -24,6 +24,17 @@ } @Test + /** + * Some teams are not going to have /scenarios/ directories, + * they are going to co-mingle with tests and match in Maven land with *Scenario + */ + public void shouldResolveCamelCasedClassNameToUnderscoredNameWithExtensionStrippingExtraneousWord() { + ScenarioNameResolver resolver = new UnderscoredCamelCaseResolver(".scenario").removeFromClassname("Scenario"); + ensureThat(resolver.resolve(CamelCaseScenario.class), + equalTo("org/jbehave/scenario/parser/camel_case.scenario")); + } + + @Test public void shouldResolveCamelCasedClassNameWithNumbersTreatedAsLowerCaseLetters() { ScenarioNameResolver resolver = new UnderscoredCamelCaseResolver(); ensureThat(resolver.resolve(CamelCaseWithA3Qualifier.class),
Modified: trunk/core/jbehave-core/src/main/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java (1602 => 1603)
--- trunk/core/jbehave-core/src/main/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java 2010-03-15 23:33:32 UTC (rev 1602) +++ trunk/core/jbehave-core/src/main/java/org/jbehave/scenario/parser/UnderscoredCamelCaseResolver.java 2010-03-19 18:55:53 UTC (rev 1603) @@ -35,8 +35,9 @@ public static final String NUMBERS_AS_UPPER_CASE_LETTERS_PATTERN = "([A-Z0-9].*?)([A-Z0-9]|\\z)"; private static final String UNDERSCORE = "_"; private final String resolutionPattern; + private String wordToRemove = ""; - public UnderscoredCamelCaseResolver() { + public UnderscoredCamelCaseResolver() { this(DEFAULT_EXTENSION); } @@ -53,8 +54,10 @@ @Override protected String resolveFileName( Class<? extends RunnableScenario> scenarioClass) { - Matcher matcher = compile(resolutionPattern).matcher( - scenarioClass.getSimpleName()); + String simpleName = scenarioClass.getSimpleName(); + simpleName = simpleName.replace(wordToRemove, ""); + Matcher matcher = compile(resolutionPattern).matcher( + simpleName); int startAt = 0; StringBuilder builder = new StringBuilder(); while (matcher.find(startAt)) { @@ -65,4 +68,8 @@ return builder.substring(0, builder.length() - 1); } + public ScenarioNameResolver removeFromClassname(String toStripOff) { + this.wordToRemove = toStripOff; + return this; + } }
To unsubscribe from this list please visit:
