- Revision
- 688
- Author
- sirenian
- Date
- 2007-02-25 13:03:34 -0600 (Sun, 25 Feb 2007)
Log Message
[EK] Removed Cotta, fixed ClassMocks which had not been added to build and therefore got broken. Mauro - I removed the plugins from .classpath due to missing jar; please fix! Ta!
Modified Paths
- trunk/.classpath
- trunk/build.xml
- trunk/core/src/behaviour/org/jbehave/core/story/AllBehaviours.java
- trunk/core/src/java/org/jbehave/core/minimock/UsingMiniMock.java
- trunk/everything/src/behaviour/org/jbehave/AllBehaviours.java
- trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java
- trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java
- trunk/extensions/ant/src/java/org/jbehave/ant/AbstractRunnerTask.java
Added Paths
Removed Paths
Diff
Modified: trunk/.classpath (687 => 688)
--- trunk/.classpath 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/.classpath 2007-02-25 19:03:34 UTC (rev 688) @@ -1,43 +1,38 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="core/src/java"/> - <classpathentry kind="src" path="core/src/behaviour"/> - <classpathentry kind="src" path="extensions/ant/src/java"/> - <classpathentry kind="src" path="extensions/ant/src/behaviour"/> - <classpathentry kind="src" path="extensions/classmocks/src/behaviour"/> - <classpathentry kind="src" path="extensions/classmocks/src/java"/> - <classpathentry kind="src" path="extensions/jmock/src/java"/> - <classpathentry kind="src" path="extensions/jmock/src/behaviour"/> - <classpathentry kind="src" path="extensions/junit/src/java"/> - <classpathentry kind="src" path="extensions/junit/src/behaviour"/> - <classpathentry kind="src" path="extensions/swing/src/java"/> - <classpathentry kind="src" path="extensions/swing/src/behaviour"/> - <classpathentry kind="src" path="everything/src/behaviour"/> - <classpathentry kind="src" path="examples/atm/src/java"/> - <classpathentry kind="src" path="examples/atm/src/stories"/> - <classpathentry kind="src" path="examples/currency/src/java"/> - <classpathentry kind="src" path="examples/currency/src/behaviour"/> - <classpathentry kind="src" path="examples/hellbound/src/java"/> - <classpathentry kind="src" path="examples/hellbound/src/behaviour"/> - <classpathentry kind="src" path="examples/hellbound/src/stories"/> - <classpathentry kind="src" path="sandbox/antlr/src/java"/> - <classpathentry kind="src" path="sandbox/fit/src/java"/> - <classpathentry kind="src" path="sandbox/fit/src/test"/> - <classpathentry kind="src" path="plugins/maven/src/main/java"/> - <classpathentry kind="src" path="plugins/maven/src/it/src/main/java"/> - <classpathentry kind="lib" path="lib/cotta/cotta-1.0.jar"/> - <classpathentry kind="lib" path="lib/extensions/antlr-2.7.6.jar"/> - <classpathentry kind="lib" path="lib/extensions/fit-1.1.jar"/> - <classpathentry kind="lib" path="lib/extensions/cglib-full-2.0.jar"/> - <classpathentry kind="lib" path="lib/extensions/jmock-1.1.0.jar"/> - <classpathentry kind="lib" path="lib/extensions/jmock-cglib-1.1.0.jar"/> - <classpathentry kind="lib" path="lib/extensions/junit-3.8.2.jar"/> - <classpathentry kind="lib" path="lib/extensions/sablecc-3.2.jar"/> - <classpathentry kind="lib" path="lib/extensions/velocity-dep-1.4.jar"/> - <classpathentry kind="lib" path="lib/extensions/proxytoys-0.2.1.jar"/> - <classpathentry kind="lib" path="lib/extensions/ant-1.6.5.jar"/> - <classpathentry kind="lib" path="lib/plugins/maven-plugin-api-2.0.jar"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/> - <classpathentry kind="output" path="bin"/> -</classpath> +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="core/src/java"/> + <classpathentry kind="src" path="core/src/behaviour"/> + <classpathentry kind="src" path="extensions/ant/src/java"/> + <classpathentry kind="src" path="extensions/ant/src/behaviour"/> + <classpathentry kind="src" path="extensions/classmocks/src/behaviour"/> + <classpathentry kind="src" path="extensions/classmocks/src/java"/> + <classpathentry kind="src" path="extensions/jmock/src/java"/> + <classpathentry kind="src" path="extensions/jmock/src/behaviour"/> + <classpathentry kind="src" path="extensions/junit/src/java"/> + <classpathentry kind="src" path="extensions/junit/src/behaviour"/> + <classpathentry kind="src" path="extensions/swing/src/java"/> + <classpathentry kind="src" path="extensions/swing/src/behaviour"/> + <classpathentry kind="src" path="everything/src/behaviour"/> + <classpathentry kind="src" path="examples/atm/src/java"/> + <classpathentry kind="src" path="examples/atm/src/stories"/> + <classpathentry kind="src" path="examples/currency/src/java"/> + <classpathentry kind="src" path="examples/currency/src/behaviour"/> + <classpathentry kind="src" path="examples/hellbound/src/java"/> + <classpathentry kind="src" path="examples/hellbound/src/behaviour"/> + <classpathentry kind="src" path="examples/hellbound/src/stories"/> + <classpathentry kind="src" path="sandbox/antlr/src/java"/> + <classpathentry kind="src" path="sandbox/fit/src/java"/> + <classpathentry kind="src" path="sandbox/fit/src/test"/> + <classpathentry kind="lib" path="lib/extensions/antlr-2.7.6.jar"/> + <classpathentry kind="lib" path="lib/extensions/fit-1.1.jar"/> + <classpathentry kind="lib" path="lib/extensions/cglib-full-2.0.jar"/> + <classpathentry kind="lib" path="lib/extensions/jmock-1.1.0.jar"/> + <classpathentry kind="lib" path="lib/extensions/jmock-cglib-1.1.0.jar"/> + <classpathentry kind="lib" path="lib/extensions/junit-3.8.2.jar"/> + <classpathentry kind="lib" path="lib/extensions/sablecc-3.2.jar"/> + <classpathentry kind="lib" path="lib/extensions/velocity-dep-1.4.jar"/> + <classpathentry kind="lib" path="lib/extensions/proxytoys-0.2.1.jar"/> + <classpathentry kind="lib" path="lib/extensions/ant-1.6.5.jar"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="output" path="bin"/> +</classpath>
Modified: trunk/build.xml (687 => 688)
--- trunk/build.xml 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/build.xml 2007-02-25 19:03:34 UTC (rev 688) @@ -17,7 +17,6 @@ <fileset dir="${lib_dir}" includes="extensions/jmock-cglib-1.1.0.jar" /> <fileset dir="${lib_dir}" includes="extensions/junit-3.8.2.jar" /> <fileset dir="${lib_dir}" includes="extensions/fit-1.1.jar" /> - <fileset dir="${lib_dir}" includes="extensions/cotta-1.0.jar" /> <fileset dir="${lib_dir}" includes="extensions/velocity-dep-1.4.jar" /> <fileset dir="${lib_dir}" includes="extensions/proxytoys-0.2.1.jar" /> </path> @@ -61,9 +60,6 @@ <target name="build-jar" depends="-init" description="Compile and assemble the jar"> <mkdir dir="${classes_dir}" /> - <unjar taskname="importing cotta classes" src="" dest="${classes_dir}"> - <patternset includes="net/**/*.*"/> - </unjar> <javac taskname="build jbehave" srcdir="${core_dir}/src/java" destdir="${classes_dir}" source="${jdk.version}" target="${jdk.version}" classpathref="libs" debug="true"> <src>
Modified: trunk/core/src/behaviour/org/jbehave/core/story/AllBehaviours.java (687 => 688)
--- trunk/core/src/behaviour/org/jbehave/core/story/AllBehaviours.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/core/src/behaviour/org/jbehave/core/story/AllBehaviours.java 2007-02-25 19:03:34 UTC (rev 688) @@ -30,20 +30,13 @@ StoryBuilderBehaviour.class, StoryRunnerBehaviour.class, TextStoryParserBehaviour.class, -// EventOutcomeStepBehaviour.class, -// EventsBehaviour.class, -// GivensBehaviour.class, GivenStepBehaviour.class, GivenScenarioBehaviour.class, MultiStepScenarioBehaviour.class, NarrativeBehaviour.class, -// OutcomesBehaviour.class, OutcomeStepBehaviour.class, ScenarioDrivenStoryBehaviour.class, -// ScenariosBehaviour.class, -// ScenarioUsingMiniMockBehaviour.class, AbstractStepBehaviour.class, -// StepsBehaviour.class, PlainTextScenarioListenerBehaviour.class, PlainTextRendererBehaviour.class, };
Deleted: trunk/core/src/behaviour/org/jbehave/core/util/BehaviourCollectorBehaviour.java (687 => 688)
--- trunk/core/src/behaviour/org/jbehave/core/util/BehaviourCollectorBehaviour.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/core/src/behaviour/org/jbehave/core/util/BehaviourCollectorBehaviour.java 2007-02-25 19:03:34 UTC (rev 688) @@ -1,55 +0,0 @@ -package org.jbehave.core.util; - -import java.util.Collection; -import java.util.List; - -import net.sf.cotta.TDirectory; -import net.sf.cotta.TFileFactory; -import net.sf.cotta.memory.InMemoryFileSystem; - -import org.jbehave.core.mock.Matcher; -import org.jbehave.core.mock.UsingMatchers; - -public class BehaviourCollectorBehaviour extends UsingMatchers { - private TDirectory directory; - - public void setUp() throws Exception { - directory = new TFileFactory(new InMemoryFileSystem()).dir("/"); - } - - public void shouldCollectFilesMatchingNamePattern() throws Exception { - directory.file("OneBehaviour.class").create(); - directory.file("TwoBehaviour.class").create(); - directory.file("RegularClass.class").create(); - List list = new BehaviourCollector(directory, "").collectNames(); - ensureThat(list, collectionContains("OneBehaviour")); - ensureThat(list, collectionContains("TwoBehaviour")); - ensureThat(list.size(), eq(2)); - } - - public void shouldConstructCorrectFullClassNameWithPackageName() throws Exception { - directory.file("ThisBehaviour.class").create(); - List list = new BehaviourCollector(directory, "one.two.three").collectNames(); - ensureThat(list, collectionContains("one.two.three.ThisBehaviour")); - ensureThat(list.size(), eq(1)); - } - - public void shouldTraverseToSubDirectories() throws Exception { - directory.dir("directory").file("AnotherBehaviour.class").create(); - List list = new BehaviourCollector(directory, "").collectNames(); - ensureThat(list, collectionContains("directory.AnotherBehaviour")); - ensureThat(list.size(), eq(1)); - } - - private Matcher collectionContains(final Object expected) { - return new Matcher() { - public boolean matches(Object arg) { - return arg != null && ((Collection) arg).contains(expected); - } - - public String toString() { - return "collection should contains <" + expected + ">"; - } - }; - } -}
Deleted: trunk/core/src/behaviour/org/jbehave/core/util/BehavioursLoaderBehaviour.java (687 => 688)
--- trunk/core/src/behaviour/org/jbehave/core/util/BehavioursLoaderBehaviour.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/core/src/behaviour/org/jbehave/core/util/BehavioursLoaderBehaviour.java 2007-02-25 19:03:34 UTC (rev 688) @@ -1,82 +0,0 @@ -package org.jbehave.core.util; - -import java.lang.reflect.Modifier; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import org.jbehave.core.listener.PlainTextListenerBehaviourSupport; -import org.jbehave.core.minimock.MiniMockObjectBehaviour; -import org.jbehave.core.mock.Matcher; -import org.jbehave.core.mock.UsingMatchers; - - -public class BehavioursLoaderBehaviour extends UsingMatchers { - - public void shouldLoadPublicBehaviourEndedWithBehaviourButNotAbstract() throws Exception { - BehavioursLoader loader = new BehavioursLoader(getClass()); - Set loadedFromBehaviourLoader = new HashSet(Arrays.asList(loader.loadBehaviours())); - ensureThatBehavioursAreLoaded(loadedFromBehaviourLoader); - } - - public void shouldLoadBehaviourUsingCustomClassLoader() throws Exception { - BehavioursLoader loader = new BehavioursLoader(getClass(), new CustomClassLoader(false)); - Set loadedFromBehaviourLoader = new HashSet(Arrays.asList(loader.loadBehaviours())); - ensureThatBehavioursAreLoaded(loadedFromBehaviourLoader); - } - - public void shouldNotLoadBehaviourUsingInvalidCustomClassLoader() throws Exception { - BehavioursLoader loader = new BehavioursLoader(getClass(), new CustomClassLoader(true)); - Set loadedFromBehaviourLoader = new HashSet(); - try { - loadedFromBehaviourLoader = new HashSet(Arrays.asList(loader - .loadBehaviours())); - } catch ( Exception e) { - ensureThat(loadedFromBehaviourLoader, setEmpty()); - } - } - - private void ensureThatBehavioursAreLoaded(Set loadedFromBehaviourLoader) { - ensureThat(loadedFromBehaviourLoader, setContains(MiniMockObjectBehaviour.class)); - ensureThat(Modifier.isAbstract(PlainTextListenerBehaviourSupport.class.getModifiers()), eq(true)); - ensureThat(loadedFromBehaviourLoader, not(setContains(PlainTextListenerBehaviourSupport.class))); - } - - private Matcher setContains(final Object item) { - return new Matcher() { - public boolean matches(Object arg) { - return ((Set) arg).contains(item); - } - - public String toString() { - return "collection contains <" + item + ">"; - } - }; - } - - private Matcher setEmpty() { - return new Matcher() { - public boolean matches(Object arg) { - return ((Set) arg).isEmpty(); - } - - public String toString() { - return "collection is empty"; - } - }; - } - - - private static class CustomClassLoader extends ClassLoader { - boolean invalid; - public CustomClassLoader(boolean invalid) { - this.invalid = invalid; - } - public Class findClass(String name) throws ClassNotFoundException{ - if ( invalid ){ - throw new ClassNotFoundException(); - } - return BehavioursLoader.class.getClassLoader().loadClass(name); - } - } -}
Modified: trunk/core/src/java/org/jbehave/core/minimock/UsingMiniMock.java (687 => 688)
--- trunk/core/src/java/org/jbehave/core/minimock/UsingMiniMock.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/core/src/java/org/jbehave/core/minimock/UsingMiniMock.java 2007-02-25 19:03:34 UTC (rev 688) @@ -36,11 +36,21 @@ } public Mock mock(Class type, String name) { - Mock mock = MiniMockObject.mock(type, name); + Mock mock = createMock(type, name); mocks.add(mock); return mock; } + /** + * Can be overridden to allow other kinds of mocks + * to be included in the same framework as MiniMock. + * + * @see org.jbehave.classmock.UsingClassMock + */ + protected Mock createMock(Class type, String name) { + return MiniMockObject.mock(type, name); + } + public Mock strictMock(Class type) { return strictMock(type, mockName(type)); }
Deleted: trunk/core/src/java/org/jbehave/core/util/BehaviourCollector.java (687 => 688)
--- trunk/core/src/java/org/jbehave/core/util/BehaviourCollector.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/core/src/java/org/jbehave/core/util/BehaviourCollector.java 2007-02-25 19:03:34 UTC (rev 688) @@ -1,56 +0,0 @@ -package org.jbehave.core.util; - -import java.util.ArrayList; -import java.util.List; - -import net.sf.cotta.TDirectory; -import net.sf.cotta.TFile; -import net.sf.cotta.TIoException; - -public class BehaviourCollector { - private TDirectory directory; - private String packageNamePrefix; - - public BehaviourCollector(TDirectory directory, String packageName) { - this.directory = directory; - this.packageNamePrefix = packageName.length() == 0 ? "" : packageName + "."; - } - - public List collectNames() throws TIoException { - ArrayList result = new ArrayList(); - collectClasses(result); - collectSubDirectories(result); - return result; - } - - private void collectClasses(ArrayList result) throws TIoException { - TFile[] files = directory.listFiles(); - for (int i = 0; i < files.length; i++) { - TFile file = files[i]; - if (looksLikeBehaviourClassFile(file)) { - result.add(fullClassName(shortClassName(file.name()))); - } - } - } - - private void collectSubDirectories(List result) throws TIoException { - TDirectory[] directories = directory.listDirs(); - for (int i = 0; i < directories.length; i++) { - TDirectory directory = directories[i]; - BehaviourCollector behaviourCollector = new BehaviourCollector(directory, packageNamePrefix + directory.name()); - result.addAll(behaviourCollector.collectNames()); - } - } - - private boolean looksLikeBehaviourClassFile(TFile file) { - return file.name().endsWith("Behaviour.class"); - } - - private String fullClassName(String shortClassName) { - return new StringBuffer(packageNamePrefix).append(shortClassName).toString(); - } - - private String shortClassName(String fileName) { - return fileName.substring(0, fileName.length() - ".class".length()); - } -}
Deleted: trunk/core/src/java/org/jbehave/core/util/BehavioursLoader.java (687 => 688)
--- trunk/core/src/java/org/jbehave/core/util/BehavioursLoader.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/core/src/java/org/jbehave/core/util/BehavioursLoader.java 2007-02-25 19:03:34 UTC (rev 688) @@ -1,78 +0,0 @@ -package org.jbehave.core.util; - -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.List; - -import net.sf.cotta.TDirectory; -import net.sf.cotta.TIoException; -import net.sf.cotta.utils.ClassPath; -import net.sf.cotta.utils.ClassPathLocator; - -/** - * Loads behaviour classes, using injected ClassLoader. If none provided, - * the current context ClassLoader is used. - * - * @author Mauro Talevi - */ -public class BehavioursLoader { - private Class markerClass; - private ClassLoader classLoader; - - public BehavioursLoader(Class markerClass) { - this(markerClass, Thread.currentThread().getContextClassLoader()); - } - - public BehavioursLoader(Class markerClass, ClassLoader classLoader) { - this.markerClass = markerClass; - this.classLoader = classLoader; - } - - public Class[] loadBehaviours() { - ClassPathLocator classPathLocator = new ClassPathLocator(markerClass); - ClassPath classPath = classPathLocator.locate(); - TDirectory directory = null; - try { - directory = classPath.asDirectory(); - } catch (TIoException e) { - throw new RuntimeException("Error locating classpath contains <" + markerClass.getName() + ">", e); - } - List classNames = null; - try { - classNames = new BehaviourCollector(directory, "").collectNames(); - } catch (TIoException e) { - throw new RuntimeException(e); - } - finally { - closeResource(classPath); - } - return convertToClasses(classNames); - } - - private void closeResource(ClassPath classPathLocator) { - try { - classPathLocator.closeResource(); - } catch (TIoException e) { - throw new RuntimeException(e); - } - } - - private Class[] convertToClasses(List classNames) { - List classes = new ArrayList(classNames.size()); - for (int i = 0; i < classNames.size(); i++) { - String name = (String) classNames.get(i); - Class behaviourClass = null; - try { - behaviourClass = classLoader.loadClass(name); - } catch (ClassNotFoundException e) { - throw new IllegalStateException("Cannot load class:" + name); - } - if (Modifier.isPublic(behaviourClass.getModifiers()) && - !Modifier.isAbstract(behaviourClass.getModifiers())) { - classes.add(behaviourClass); - } - } - return (Class[]) classes.toArray(new Class[classes.size()]); - } - -}
Modified: trunk/everything/src/behaviour/org/jbehave/AllBehaviours.java (687 => 688)
--- trunk/everything/src/behaviour/org/jbehave/AllBehaviours.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/everything/src/behaviour/org/jbehave/AllBehaviours.java 2007-02-25 19:03:34 UTC (rev 688) @@ -7,6 +7,7 @@ return new Class[] { org.jbehave.core.AllBehaviours.class, org.jbehave.ant.AllBehaviours.class, + org.jbehave.classmock.AllBehaviours.class, org.jbehave.jmock.AllBehaviours.class, org.jbehave.junit.AllBehaviours.class, org.jbehave.threaded.swing.AllBehaviours.class
Modified: trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java (687 => 688)
--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java 2007-02-25 19:03:34 UTC (rev 688) @@ -8,21 +8,16 @@ package org.jbehave.ant; -import java.io.File; import java.util.Arrays; import java.util.Collection; import java.util.List; -import net.sf.cotta.utils.ClassPath; -import net.sf.cotta.utils.ClassPathLocator; - import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.Path; import org.jbehave.core.Block; -import org.jbehave.core.BehaviourRunner; import org.jbehave.core.minimock.UsingMiniMock; import org.jbehave.core.mock.Matcher; @@ -38,15 +33,8 @@ project.setCoreLoader(getClass().getClassLoader()); task.setProject(project); Path path = task.createClasspath(); - addToPathContains(path, getClass()); - addToPathContains(path, BehaviourRunner.class); } - private void addToPathContains(Path path, Class aClass) { - ClassPathLocator behaviourClassPathLocator = new ClassPathLocator(aClass); - path.createPathElement().setLocation(new File(behaviourClassPathLocator.locate().path())); - } - public void shouldRunASingleBehaviourClass() throws Exception { task.setBehavioursClassName(BehaviourClassOne.class.getName()); runner.valueToReturn = 0; @@ -84,26 +72,6 @@ } - public void shouldUseClasspathFromClasspathElement() throws Exception { - Path path = task.createClasspath(); - Path.PathElement element = path.createPathElement(); - - ClassPath classPath = new ClassPathLocator(String.class).locate(); - String pathToRuntimeJar = classPath.path(); - element.setPath(pathToRuntimeJar); - - task.setBehavioursClassName(BehaviourClassOne.class.getName()); - - task.execute(); - - List list = Arrays.asList(runner.commandLineLog); - int classPathSwitchElement = list.indexOf("-classpath"); - ensureThat(classPathSwitchElement, not(eq(-1))); - String classPaths = (String) list.get(classPathSwitchElement + 1); - String[] classPathArray = classPaths.split(File.pathSeparator); - ensureThat(Arrays.asList(classPathArray), collectionContains(pathToRuntimeJar)); - } - public void shouldFailTheBuildWhenVerificationFails() throws Exception { final String behaviourClassName = FailingBehaviourClass.class.getName(); task.setBehavioursClassName(behaviourClassName); @@ -117,27 +85,6 @@ ensureThat(exception, isNotNull()); } - -/* TODO - public void shouldFailTheBuildWhenFirstSpecFails() throws Exception { - // setup - task.createVerify().setName("jbehave.extensions.ant.FailingSpec"); - task.createVerify().setName("jbehave.extensions.ant.SpecOne"); - BehaviourClassOne.wasCalled = false; // i hate this! - - // execute - ensureThrows(BuildException.class, new Block() { - public void run() { - task.execute(); - } - }); - - // verify - Ensure.that("SpecOne should not have been run", !BehaviourClassOne.wasCalled); - } - -*/ - private static class StubCommandRunner implements CommandRunner { private int valueToReturn; private Task taskLog;
Modified: trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java (687 => 688)
--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java 2007-02-25 19:03:34 UTC (rev 688) @@ -1,19 +1,14 @@ package org.jbehave.ant; -import java.io.File; import java.util.Arrays; import java.util.Collection; import java.util.List; -import net.sf.cotta.utils.ClassPath; -import net.sf.cotta.utils.ClassPathLocator; - import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.types.Path; import org.jbehave.core.Block; import org.jbehave.core.mock.Matcher; import org.jbehave.core.mock.UsingMatchers; @@ -67,29 +62,8 @@ List list = Arrays.asList(runner.commandLineLog); ensureThat(list, collectionContains(StoryClassOne.class.getName())); ensureThat(list, collectionContains(StoryClassTwo.class.getName())); - } - public void shouldUseClasspathFromClasspathElement() throws Exception { - Path path = task.createClasspath(); - Path.PathElement element = path.createPathElement(); - - ClassPath classPath = new ClassPathLocator(String.class).locate(); - String pathToRuntimeJar = classPath.path(); - element.setPath(pathToRuntimeJar); - - task.setStoryClassName(BehaviourClassOne.class.getName()); - - task.execute(); - - List list = Arrays.asList(runner.commandLineLog); - int classPathSwitchElement = list.indexOf("-classpath"); - ensureThat(classPathSwitchElement, not(eq(-1))); - String classPaths = (String) list.get(classPathSwitchElement + 1); - String[] classPathArray = classPaths.split(File.pathSeparator); - ensureThat(Arrays.asList(classPathArray), collectionContains(pathToRuntimeJar)); - } - public void shouldFailTheBuildWhenVerificationFails() throws Exception { final String storyClassName = FailingStoryClass.class.getName(); task.setStoryClassName(storyClassName);
Modified: trunk/extensions/ant/src/java/org/jbehave/ant/AbstractRunnerTask.java (687 => 688)
--- trunk/extensions/ant/src/java/org/jbehave/ant/AbstractRunnerTask.java 2007-02-25 17:25:30 UTC (rev 687) +++ trunk/extensions/ant/src/java/org/jbehave/ant/AbstractRunnerTask.java 2007-02-25 19:03:34 UTC (rev 688) @@ -1,13 +1,15 @@ package org.jbehave.ant; +import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.StringTokenizer; -import net.sf.cotta.utils.ClassPath; -import net.sf.cotta.utils.ClassPathLocator; - import org.apache.tools.ant.BuildException; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.Path; @@ -37,8 +39,7 @@ private void appendAntTaskJar() { - ClassPath classPath = new ClassPathLocator(getClass()).locate(); - createClasspath().append(new Path(getProject(), classPath.path())); + createClasspath().append(new Path(getProject(), locate())); } private void invoke() { @@ -69,4 +70,49 @@ public void addFilesetTarget(FileSet fileset) { filesets.add(fileset); } + + private String locate() { + URL url = "" + if ("jar".equalsIgnoreCase(url.getProtocol())) { + return getJarFileOnClassPath(url); + } else { + return goToClassPathRootDirectory(url); + } + } + + private String goToClassPathRootDirectory(URL url) { + File classFile = getFileOnClassPath(url); + int level = new StringTokenizer(getClass().getName(), ".").countTokens(); + File directory = classFile.getParentFile(); + for (int i = 0; i < level - 1; i++) { + directory = directory.getParentFile(); + } + return directory.getAbsolutePath(); + } + + private String getJarFileOnClassPath(URL url) { + String file = url.getFile(); + int index = file.indexOf("!"); + if (index == -1) { + throw new IllegalArgumentException(url.toExternalForm() + " does not have '!' for a Jar URL"); + } + File fileObject = fromUri(file.substring(0, index)); + return fileObject.getAbsolutePath(); + } + + private File getFileOnClassPath(URL url) { + return fromUri(url.getFile()); + } + + private File fromUri(String fileUri) { + try { + return new File(new URI(fileUri)); + } catch (URISyntaxException e) { + throw new RuntimeException("Couldn't locate file:" + fileUri, e); + } + } + + private String resourcePathToClassFile() { + return "/" + getClass().getName().replace('.', '/') + ".class"; + } }
Added: trunk/extensions/classmocks/src/behaviour/org/jbehave/classmock/AllBehaviours.java (0 => 688)
--- trunk/extensions/classmocks/src/behaviour/org/jbehave/classmock/AllBehaviours.java (rev 0) +++ trunk/extensions/classmocks/src/behaviour/org/jbehave/classmock/AllBehaviours.java 2007-02-25 19:03:34 UTC (rev 688) @@ -0,0 +1,13 @@ +package org.jbehave.classmock; + +import org.jbehave.core.behaviour.Behaviours; + +public class AllBehaviours implements Behaviours{ + public Class[] getBehaviours() { + return new Class[] { + ClassMockObjectBehaviour.class, + UsingClassMockBehaviour.class + }; + } + +}
To unsubscribe from this list please visit:
