Title: [686] trunk: [EK] Renaming of tasks and behaviour runner for consistency

Diff

Modified: trunk/build.xml (685 => 686)

--- trunk/build.xml	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/build.xml	2007-02-25 16:03:05 UTC (rev 686)
@@ -41,8 +41,8 @@
 	<!-- examples -->
 	<property name="example" value="hellbound" />
 	<property name="example.behaviours" value="com.sirenian.hellbound.AllBehaviours" />	
-	<property name="behaviour.runner.task" value="org.jbehave.ant.JBehaveTask"/>
-	<property name="story.runner.task" value="org.jbehave.ant.JBehaveStoryTask"/>
+	<property name="behaviour.runner.task" value="org.jbehave.ant.BehaviourRunnerTask"/>
+	<property name="story.runner.task" value="org.jbehave.ant.StoryRunnerTask"/>
 	
 	<!-- general targets -->
 	<target name="clean" description="Clean out output directory">

Modified: trunk/core/src/behaviour/org/jbehave/core/RunBehaviour.java (685 => 686)

--- trunk/core/src/behaviour/org/jbehave/core/RunBehaviour.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/core/src/behaviour/org/jbehave/core/RunBehaviour.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -43,13 +43,13 @@
 	
 	public void shouldRunClassFromArgumentSuccessfully() {
 		runCount = 0;
-		new Run(nullPrintStream).verifyBehaviour(RunnableBehaviour.class);
+		new BehaviourRunner(nullPrintStream).verifyBehaviour(RunnableBehaviour.class);
 		Ensure.that(runCount == 1);
 	}
 	
 	public void shouldRunTwoClassesFromArgumentsSuccessfully() {
 		runCount = 0;
-		Run run = new Run(nullPrintStream);
+		BehaviourRunner run = new BehaviourRunner(nullPrintStream);
         run.verifyBehaviour(RunnableBehaviour.class);
         run.verifyBehaviour(RunnableBehaviour.class);
 		Ensure.that(runCount == 2);
@@ -57,13 +57,13 @@
     
     public void shouldRunClassNameFromArgumentSuccessfully() throws ClassNotFoundException {
         runCount = 0;
-        new Run(nullPrintStream).verifyBehaviour(RunnableBehaviour.class.getName());
+        new BehaviourRunner(nullPrintStream).verifyBehaviour(RunnableBehaviour.class.getName());
         Ensure.that(runCount == 1);
     }
 
     public void shouldRunClassNamePlusOneMethodSuccessfully() throws ClassNotFoundException {
         runCount = 0;
-        Run run = new Run(nullPrintStream);
+        BehaviourRunner run = new BehaviourRunner(nullPrintStream);
         run.verifyBehaviour(RunnableBehaviourWithTwoMethods.class.getName() + ":" + "shouldRunNumberOne");
         ensureThat(run.succeeded(), eq(true));
         ensureThat(runCount, eq(1));
@@ -72,13 +72,13 @@
 
     public void shouldRunClassNameUsingCustomClassLoader() throws ClassNotFoundException {
         runCount = 0;
-        new Run(nullPrintStream, new CustomClassLoader(false)).verifyBehaviour(RunnableBehaviour.class.getName());
+        new BehaviourRunner(nullPrintStream, new CustomClassLoader(false)).verifyBehaviour(RunnableBehaviour.class.getName());
         Ensure.that(runCount == 1);
     }
 
     public void shouldFailToRunClassNameUsingInvalidClassLoader() throws ClassNotFoundException {
         try {
-            new Run(nullPrintStream, new CustomClassLoader(true))
+            new BehaviourRunner(nullPrintStream, new CustomClassLoader(true))
                     .verifyBehaviour(RunnableBehaviour.class.getName());
         } catch (ClassNotFoundException e) {
             Ensure.that(runCount == 0);
@@ -97,7 +97,7 @@
             if ( invalid ){
                 throw new ClassNotFoundException();
             }
-            return Run.class.getClassLoader().loadClass(name);            
+            return BehaviourRunner.class.getClassLoader().loadClass(name);            
         }
     }
 }

Added: trunk/core/src/java/org/jbehave/core/BehaviourRunner.java (0 => 686)

--- trunk/core/src/java/org/jbehave/core/BehaviourRunner.java	                        (rev 0)
+++ trunk/core/src/java/org/jbehave/core/BehaviourRunner.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -0,0 +1,75 @@
+package org.jbehave.core;
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+import org.jbehave.core.behaviour.BehaviourClass;
+import org.jbehave.core.behaviour.BehaviourVerifier;
+import org.jbehave.core.listener.PlainTextListener;
+import org.jbehave.core.util.Timer;
+
+
+/**
+ * This is the entry point to run one or more [EMAIL PROTECTED] BehaviourClass}.
+ * Classes are loaded using the ClassLoader injected, which defaults to the current context
+ * ClassLoader.
+ * 
+ * @author <a href="" PROTECTED]">Dan North</a>
+ * @author Mauro Talevi
+ */
+public class BehaviourRunner {
+    private boolean succeeded = true;
+    private final PrintWriter writer;
+    private ClassLoader classLoader;
+
+    public BehaviourRunner(PrintStream out) {
+        this(out, Thread.currentThread().getContextClassLoader());
+    }
+    
+    public BehaviourRunner(PrintStream out, ClassLoader classLoader) {
+        this.writer = new PrintWriter(out);
+        this.classLoader = classLoader;
+    }
+
+    public boolean succeeded() {
+        return succeeded;
+    }
+
+    public void verifyBehaviour(String behaviourLocator) throws ClassNotFoundException {
+        String className = behaviourLocator;
+        String methodName = "";
+        int index = behaviourLocator.indexOf(':');
+        if (index >= 0) {
+            className = behaviourLocator.substring(0, index);
+            methodName = behaviourLocator.substring(index + 1);
+        }
+        verifyBehaviour(classLoader.loadClass(className), methodName);
+    }
+    
+    public void verifyBehaviour(Class classToVerify) {
+        verifyBehaviour(classToVerify, "");
+    }
+
+    public void verifyBehaviour(Class classToVerify, String methodName) {
+        PlainTextListener textListener = new PlainTextListener(new PrintWriter(writer), new Timer());
+        BehaviourVerifier verifier = new BehaviourVerifier(textListener);
+        verifier.verifyBehaviour(new BehaviourClass(classToVerify, methodName, verifier));
+        textListener.printReport();
+        succeeded = succeeded && !textListener.hasBehaviourFailures();
+    }
+
+    public static void main(String[] args) {
+        try {
+            BehaviourRunner run = new BehaviourRunner(System.out);
+            for (int i = 0; i < args.length; i++) {
+                run.verifyBehaviour(args[i]);
+            }
+            System.exit(run.succeeded() ? 0 : 1);
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+
+}

Modified: trunk/core/src/java/org/jbehave/core/Run.java (685 => 686)

--- trunk/core/src/java/org/jbehave/core/Run.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/core/src/java/org/jbehave/core/Run.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -1,75 +1,21 @@
 package org.jbehave.core;
 
 import java.io.PrintStream;
-import java.io.PrintWriter;
 
-import org.jbehave.core.behaviour.BehaviourClass;
-import org.jbehave.core.behaviour.BehaviourVerifier;
-import org.jbehave.core.listener.PlainTextListener;
-import org.jbehave.core.util.Timer;
-
-
 /**
- * This is the entry point to run one or more [EMAIL PROTECTED] BehaviourClass}.
- * Classes are loaded using the ClassLoader injected, which defaults to the current context
- * ClassLoader.
- * 
- * @author <a href="" PROTECTED]">Dan North</a>
- * @author Mauro Talevi
+ * @deprecated poorly named, use BehaviourRunner instead
  */
-public class Run {
-    private boolean succeeded = true;
-    private final PrintWriter writer;
-    private ClassLoader classLoader;
+public class Run extends BehaviourRunner {
 
     public Run(PrintStream out) {
-        this(out, Thread.currentThread().getContextClassLoader());
+        super(out);
     }
-    
+
     public Run(PrintStream out, ClassLoader classLoader) {
-        this.writer = new PrintWriter(out);
-        this.classLoader = classLoader;
+        super(out, classLoader);
     }
-
-    public boolean succeeded() {
-        return succeeded;
-    }
-
-    public void verifyBehaviour(String behaviourLocator) throws ClassNotFoundException {
-        String className = behaviourLocator;
-        String methodName = "";
-        int index = behaviourLocator.indexOf(':');
-        if (index >= 0) {
-            className = behaviourLocator.substring(0, index);
-            methodName = behaviourLocator.substring(index + 1);
-        }
-        verifyBehaviour(classLoader.loadClass(className), methodName);
-    }
     
-    public void verifyBehaviour(Class classToVerify) {
-        verifyBehaviour(classToVerify, "");
-    }
-
-    public void verifyBehaviour(Class classToVerify, String methodName) {
-        PlainTextListener textListener = new PlainTextListener(new PrintWriter(writer), new Timer());
-        BehaviourVerifier verifier = new BehaviourVerifier(textListener);
-        verifier.verifyBehaviour(new BehaviourClass(classToVerify, methodName, verifier));
-        textListener.printReport();
-        succeeded = succeeded && !textListener.hasBehaviourFailures();
-    }
-
     public static void main(String[] args) {
-        try {
-            Run run = new Run(System.out);
-            for (int i = 0; i < args.length; i++) {
-                run.verifyBehaviour(args[i]);
-            }
-            System.exit(run.succeeded() ? 0 : 1);
-        } catch (ClassNotFoundException e) {
-            e.printStackTrace();
-            System.exit(1);
-        }
+        BehaviourRunner.main(args);
     }
-
-
 }

Modified: trunk/extensions/ant/src/behaviour/org/jbehave/ant/AllBehaviours.java (685 => 686)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/AllBehaviours.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/AllBehaviours.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -16,8 +16,8 @@
 
     public Class[] getBehaviours() {
         return new Class[] {
-            JBehaveTaskBehaviour.class,
-            JBehaveStoryTaskBehaviour.class
+            BehaviourRunnerTaskBehaviour.class,
+            StoryRunnerTaskBehaviour.class
         };
     }
 }

Added: trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java (0 => 686)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java	                        (rev 0)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/BehaviourRunnerTaskBehaviour.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -0,0 +1,162 @@
+/*
+ * Created on 19-Jul-2004
+ * 
+ * (c) 2003-2004 ThoughtWorks
+ * 
+ * See license.txt for licence details
+ */
+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;
+
+
+public class BehaviourRunnerTaskBehaviour extends UsingMiniMock {
+    private BehaviourRunnerTask task;
+    private StubCommandRunner runner = new StubCommandRunner();
+    private StubFilesetParser filesetParser = new StubFilesetParser();
+
+    public void setUp() {
+        task = new BehaviourRunnerTask(runner, filesetParser);
+        Project project = new Project();
+        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;
+        task.execute();
+
+        ensureThat(runner.taskLog, sameInstanceAs(task));
+        String[] actualCommand = runner.commandLineLog;
+        ensureThat(actualCommand[0].matches(".*java.*"), eq(true));
+        List list = Arrays.asList(actualCommand);
+        ensureThat(list, collectionContains(BehaviourClassOne.class.getName()));
+    }
+
+    private Matcher collectionContains(final Object item) {
+        return new Matcher() {
+            public boolean matches(Object arg) {
+                return ((Collection)arg).contains(item);
+            }
+
+            public String toString() {
+                return "Collection that contains <" + item + ">";
+            }
+        };
+    }
+    
+    public void shouldRunBehavioursFoundInFileSet() {
+        
+        FileSet fileSet = new FileSet();
+        
+        task.addBehaviours(fileSet);
+        task.execute();
+
+        List list = Arrays.asList(runner.commandLineLog);
+        ensureThat(list, collectionContains(BehaviourClassOne.class.getName()));
+        ensureThat(list, collectionContains(BehaviourClassTwo.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.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);
+        runner.valueToReturn = 1;
+
+        Exception exception = runAndCatch(BuildException.class, new Block() {
+            public void run() throws Exception {
+                task.execute();
+            }
+        });
+        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;
+        private String[] commandLineLog;
+
+        public int fork(Task task, String[] commandline) {
+            taskLog = task;
+            commandLineLog = commandline;
+            return valueToReturn;
+        }
+    }
+    
+    private static class StubFilesetParser implements FilesetParser {
+        
+        public String[] getClassNames(FileSet fileset, Project project) {
+            return new String[] {
+                    BehaviourClassOne.class.getName(),
+                    BehaviourClassTwo.class.getName()
+            };
+        }
+    }
+}

Modified: trunk/extensions/ant/src/behaviour/org/jbehave/ant/FailingBehaviourClass.java (685 => 686)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/FailingBehaviourClass.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/FailingBehaviourClass.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -13,7 +13,7 @@
  * @author <a href="" PROTECTED]">Damian Guy</a>
  *         Date: 19-Jul-2004
  *
- * For use from [EMAIL PROTECTED] JBehaveTaskBehaviour}
+ * For use from [EMAIL PROTECTED] BehaviourRunnerTaskBehaviour}
  */
 public class FailingBehaviourClass {
 	public void shouldFail() throws Exception {

Deleted: trunk/extensions/ant/src/behaviour/org/jbehave/ant/JBehaveStoryTaskBehaviour.java (685 => 686)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/JBehaveStoryTaskBehaviour.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/JBehaveStoryTaskBehaviour.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -1,127 +0,0 @@
-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;
-
-public class JBehaveStoryTaskBehaviour extends UsingMatchers {
-
-    private StubCommandRunner runner = new StubCommandRunner();
-    private JBehaveStoryTask task = new JBehaveStoryTask();
-    private StubFilesetParser filesetParser = new StubFilesetParser();
-    
-    public void setUp() {
-        task = new JBehaveStoryTask(runner, filesetParser);
-        Project project = new Project();
-        project.setCoreLoader(getClass().getClassLoader());
-        task.setProject(project);
-    }
-    
-
-    private Matcher collectionContains(final Object item) {
-        return new Matcher() {
-            public boolean matches(Object arg) {
-                return ((Collection)arg).contains(item);
-            }
-
-            public String toString() {
-                return "Collection that contains <" + item + ">";
-            }
-        };
-    }
-    
-    public void shouldRunASingleStoryClass() throws Exception {
-        task.setStoryClassName(StoryClassOne.class.getName());
-        runner.valueToReturn = 0;
-
-        task.execute();
-
-        ensureThat(runner.taskLog, sameInstanceAs(task));
-        String[] actualCommand = runner.commandLineLog;
-        ensureThat(actualCommand[0].matches(".*java.*"), eq(true));
-        List list = Arrays.asList(actualCommand);
-        ensureThat(list, collectionContains(StoryClassOne.class.getName()));
-    }
-    
-   public void shouldRunStoriesFoundInFileSet() {
-        
-        FileSet fileSet = new FileSet();
-        
-        task.addStories(fileSet);
-        task.execute();
-
-        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);
-        runner.valueToReturn = 1;
-
-        Exception exception = runAndCatch(BuildException.class, new Block() {
-            public void run() throws Exception {
-                task.execute();
-            }
-        });
-        ensureThat(exception, isNotNull());
-    }    
-    
-    private static class StubCommandRunner implements CommandRunner {
-        private int valueToReturn;
-        private Task taskLog;
-        private String[] commandLineLog;
-
-        public int fork(Task task, String[] commandline) {
-            taskLog = task;
-            commandLineLog = commandline;
-            return valueToReturn;
-        }
-    }
-    
-    private static class StubFilesetParser implements FilesetParser {
-        
-        public String[] getClassNames(FileSet fileset, Project project) {
-            return new String[] {
-                    StoryClassOne.class.getName(),
-                    StoryClassTwo.class.getName()
-            };
-        }
-    }    
-}

Deleted: trunk/extensions/ant/src/behaviour/org/jbehave/ant/JBehaveTaskBehaviour.java (685 => 686)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/JBehaveTaskBehaviour.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/JBehaveTaskBehaviour.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -1,162 +0,0 @@
-/*
- * Created on 19-Jul-2004
- * 
- * (c) 2003-2004 ThoughtWorks
- * 
- * See license.txt for licence details
- */
-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.Run;
-import org.jbehave.core.minimock.UsingMiniMock;
-import org.jbehave.core.mock.Matcher;
-
-
-public class JBehaveTaskBehaviour extends UsingMiniMock {
-    private JBehaveTask task;
-    private StubCommandRunner runner = new StubCommandRunner();
-    private StubFilesetParser filesetParser = new StubFilesetParser();
-
-    public void setUp() {
-        task = new JBehaveTask(runner, filesetParser);
-        Project project = new Project();
-        project.setCoreLoader(getClass().getClassLoader());
-        task.setProject(project);
-        Path path = task.createClasspath();
-        addToPathContains(path, getClass());
-        addToPathContains(path, Run.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;
-        task.execute();
-
-        ensureThat(runner.taskLog, sameInstanceAs(task));
-        String[] actualCommand = runner.commandLineLog;
-        ensureThat(actualCommand[0].matches(".*java.*"), eq(true));
-        List list = Arrays.asList(actualCommand);
-        ensureThat(list, collectionContains(BehaviourClassOne.class.getName()));
-    }
-
-    private Matcher collectionContains(final Object item) {
-        return new Matcher() {
-            public boolean matches(Object arg) {
-                return ((Collection)arg).contains(item);
-            }
-
-            public String toString() {
-                return "Collection that contains <" + item + ">";
-            }
-        };
-    }
-    
-    public void shouldRunBehavioursFoundInFileSet() {
-        
-        FileSet fileSet = new FileSet();
-        
-        task.addBehaviours(fileSet);
-        task.execute();
-
-        List list = Arrays.asList(runner.commandLineLog);
-        ensureThat(list, collectionContains(BehaviourClassOne.class.getName()));
-        ensureThat(list, collectionContains(BehaviourClassTwo.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.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);
-        runner.valueToReturn = 1;
-
-        Exception exception = runAndCatch(BuildException.class, new Block() {
-            public void run() throws Exception {
-                task.execute();
-            }
-        });
-        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;
-        private String[] commandLineLog;
-
-        public int fork(Task task, String[] commandline) {
-            taskLog = task;
-            commandLineLog = commandline;
-            return valueToReturn;
-        }
-    }
-    
-    private static class StubFilesetParser implements FilesetParser {
-        
-        public String[] getClassNames(FileSet fileset, Project project) {
-            return new String[] {
-                    BehaviourClassOne.class.getName(),
-                    BehaviourClassTwo.class.getName()
-            };
-        }
-    }
-}

Added: trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java (0 => 686)

--- trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java	                        (rev 0)
+++ trunk/extensions/ant/src/behaviour/org/jbehave/ant/StoryRunnerTaskBehaviour.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -0,0 +1,127 @@
+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;
+
+public class StoryRunnerTaskBehaviour extends UsingMatchers {
+
+    private StubCommandRunner runner = new StubCommandRunner();
+    private StoryRunnerTask task = new StoryRunnerTask();
+    private StubFilesetParser filesetParser = new StubFilesetParser();
+    
+    public void setUp() {
+        task = new StoryRunnerTask(runner, filesetParser);
+        Project project = new Project();
+        project.setCoreLoader(getClass().getClassLoader());
+        task.setProject(project);
+    }
+    
+
+    private Matcher collectionContains(final Object item) {
+        return new Matcher() {
+            public boolean matches(Object arg) {
+                return ((Collection)arg).contains(item);
+            }
+
+            public String toString() {
+                return "Collection that contains <" + item + ">";
+            }
+        };
+    }
+    
+    public void shouldRunASingleStoryClass() throws Exception {
+        task.setStoryClassName(StoryClassOne.class.getName());
+        runner.valueToReturn = 0;
+
+        task.execute();
+
+        ensureThat(runner.taskLog, sameInstanceAs(task));
+        String[] actualCommand = runner.commandLineLog;
+        ensureThat(actualCommand[0].matches(".*java.*"), eq(true));
+        List list = Arrays.asList(actualCommand);
+        ensureThat(list, collectionContains(StoryClassOne.class.getName()));
+    }
+    
+   public void shouldRunStoriesFoundInFileSet() {
+        
+        FileSet fileSet = new FileSet();
+        
+        task.addStories(fileSet);
+        task.execute();
+
+        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);
+        runner.valueToReturn = 1;
+
+        Exception exception = runAndCatch(BuildException.class, new Block() {
+            public void run() throws Exception {
+                task.execute();
+            }
+        });
+        ensureThat(exception, isNotNull());
+    }    
+    
+    private static class StubCommandRunner implements CommandRunner {
+        private int valueToReturn;
+        private Task taskLog;
+        private String[] commandLineLog;
+
+        public int fork(Task task, String[] commandline) {
+            taskLog = task;
+            commandLineLog = commandline;
+            return valueToReturn;
+        }
+    }
+    
+    private static class StubFilesetParser implements FilesetParser {
+        
+        public String[] getClassNames(FileSet fileset, Project project) {
+            return new String[] {
+                    StoryClassOne.class.getName(),
+                    StoryClassTwo.class.getName()
+            };
+        }
+    }    
+}

Modified: trunk/extensions/ant/src/java/org/jbehave/ant/BehaviourRunnerTask.java (685 => 686)

--- trunk/extensions/ant/src/java/org/jbehave/ant/BehaviourRunnerTask.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/extensions/ant/src/java/org/jbehave/ant/BehaviourRunnerTask.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -1,53 +1,31 @@
-package org.jbehave.ant;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Path;
-import org.jbehave.core.Run;
-import org.jbehave.core.behaviour.Behaviours;
-
-/**
-* Ant Task to verify Behaviours
-* 
-* @author Mauro Talevi
-*/
-public class BehaviourRunnerTask extends AbstractJavaTask {
-    
-    public BehaviourRunnerTask() {
-        super(new CommandRunnerImpl());
-    }
-
-    private String behavioursClassName;
-    private Run runner = new Run(System.out);
-
-    public void execute() throws BuildException {
-        try {
-            Behaviours behaviours = loadBehaviours(behavioursClassName);
-            Class[] classes = behaviours.getBehaviours();
-            for (int i = 0; i < classes.length; i++) {
-                runner.verifyBehaviour(classes[i]);
-            }            
-        } catch (Exception e) {
-            String message = "Failed to verify behaviours "+behavioursClassName;
-            log(message, e);
-            throw new BuildException(message, e);
-        }
-    }
-
-    private void log(String message, Exception e) {
-        log(message);
-        e.printStackTrace();
-    }
-
-    public void setBehavioursClassName(String behavioursClassName) {
-        this.behavioursClassName = behavioursClassName;
-    }
-
-    private Behaviours loadBehaviours(String name) throws InstantiationException, IllegalAccessException, ClassNotFoundException {        
-        return (Behaviours) createClassLoader().loadClass(name).newInstance();
-    }
-    
-    private ClassLoader createClassLoader() {
-        Path classPath = commandLine.createClasspath(getProject());
-        return getProject().createClassLoader(classPath);
-    }
-}
+/*
+ * Created on 19-Jul-2004
+ * 
+ * (c) 2003-2004 ThoughtWorks
+ * 
+ * See license.txt for licence details
+ */
+package org.jbehave.ant;
+
+import org.apache.tools.ant.types.FileSet;
+import org.jbehave.core.BehaviourRunner;
+
+public class BehaviourRunnerTask extends AbstractRunnerTask {
+
+    public BehaviourRunnerTask() {
+        this(new CommandRunnerImpl(), new TrimFilesetParser());
+    }
+
+    public BehaviourRunnerTask(CommandRunner runner, FilesetParser filesetParser) {
+        super(BehaviourRunner.class, runner, filesetParser);
+    }
+
+    public void setBehavioursClassName(String behavioursClassName) {
+        super.addTarget(behavioursClassName);
+    }
+    
+    public void addBehaviours(FileSet fileset) {
+        super.addFilesetTarget(fileset);
+    }
+
+}

Deleted: trunk/extensions/ant/src/java/org/jbehave/ant/JBehaveStoryTask.java (685 => 686)

--- trunk/extensions/ant/src/java/org/jbehave/ant/JBehaveStoryTask.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/extensions/ant/src/java/org/jbehave/ant/JBehaveStoryTask.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -1,25 +0,0 @@
-package org.jbehave.ant;
-
-import org.apache.tools.ant.types.FileSet;
-import org.jbehave.core.story.StoryRunner;
-
-public class JBehaveStoryTask extends AbstractRunnerTask {
-    
-    public JBehaveStoryTask() {
-        this(new CommandRunnerImpl(), new TrimFilesetParser());
-    }
-
-    public JBehaveStoryTask(CommandRunner runner, FilesetParser parser) {
-        super(StoryRunner.class, runner, parser);
-    }
-
-    public void setStoryClassName(String storyClassName) {
-        super.addTarget(storyClassName);
-    }
-    
-    
-    public void addStories(FileSet fileset) {
-        super.addFilesetTarget(fileset);
-    }
-
-}

Deleted: trunk/extensions/ant/src/java/org/jbehave/ant/JBehaveTask.java (685 => 686)

--- trunk/extensions/ant/src/java/org/jbehave/ant/JBehaveTask.java	2007-02-04 18:24:46 UTC (rev 685)
+++ trunk/extensions/ant/src/java/org/jbehave/ant/JBehaveTask.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -1,31 +0,0 @@
-/*
- * Created on 19-Jul-2004
- * 
- * (c) 2003-2004 ThoughtWorks
- * 
- * See license.txt for licence details
- */
-package org.jbehave.ant;
-
-import org.apache.tools.ant.types.FileSet;
-import org.jbehave.core.Run;
-
-public class JBehaveTask extends AbstractRunnerTask {
-
-    public JBehaveTask() {
-        this(new CommandRunnerImpl(), new TrimFilesetParser());
-    }
-
-    public JBehaveTask(CommandRunner runner, FilesetParser filesetParser) {
-        super(Run.class, runner, filesetParser);
-    }
-
-    public void setBehavioursClassName(String behavioursClassName) {
-        super.addTarget(behavioursClassName);
-    }
-    
-    public void addBehaviours(FileSet fileset) {
-        super.addFilesetTarget(fileset);
-    }
-
-}

Added: trunk/extensions/ant/src/java/org/jbehave/ant/StoryRunnerTask.java (0 => 686)

--- trunk/extensions/ant/src/java/org/jbehave/ant/StoryRunnerTask.java	                        (rev 0)
+++ trunk/extensions/ant/src/java/org/jbehave/ant/StoryRunnerTask.java	2007-02-25 16:03:05 UTC (rev 686)
@@ -0,0 +1,25 @@
+package org.jbehave.ant;
+
+import org.apache.tools.ant.types.FileSet;
+import org.jbehave.core.story.StoryRunner;
+
+public class StoryRunnerTask extends AbstractRunnerTask {
+    
+    public StoryRunnerTask() {
+        this(new CommandRunnerImpl(), new TrimFilesetParser());
+    }
+
+    public StoryRunnerTask(CommandRunner runner, FilesetParser parser) {
+        super(StoryRunner.class, runner, parser);
+    }
+
+    public void setStoryClassName(String storyClassName) {
+        super.addTarget(storyClassName);
+    }
+    
+    
+    public void addStories(FileSet fileset) {
+        super.addFilesetTarget(fileset);
+    }
+
+}


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to