Title: [981] trunk/jbehave-core/src/java/org/jbehave/scenario/steps: Added successful() method to AfterScenario annotation, in preparation to replacing AfterSuccessfulScenario/AfterUnsuccessfulScenario annotations.
Revision
981
Author
mauro
Date
2008-10-17 02:49:04 -0500 (Fri, 17 Oct 2008)

Log Message

Added successful() method to AfterScenario annotation, in preparation to replacing AfterSuccessfulScenario/AfterUnsuccessfulScenario annotations.

Modified Paths

Diff

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/annotations/AfterScenario.java (980 => 981)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/annotations/AfterScenario.java	2008-10-16 21:44:22 UTC (rev 980)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/annotations/AfterScenario.java	2008-10-17 07:49:04 UTC (rev 981)
@@ -9,4 +9,11 @@
 @Target(ElementType.METHOD)
 public @interface AfterScenario {
 
+	/**
+	 * When set it signals that the annotated method should be invoked only upon scenario outcome, successful or not
+	 * 
+	 * @return A boolean, true if method should be invoked only upon successful scenario
+	 */
+	boolean successful() default true;
+
 }

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/steps/Steps.java (980 => 981)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/steps/Steps.java	2008-10-16 21:44:22 UTC (rev 980)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/steps/Steps.java	2008-10-17 07:49:04 UTC (rev 981)
@@ -126,7 +126,8 @@
 	public List<Step> runBeforeScenario() {
 		return stepsHaving(BeforeScenario.class, new OkayToRun(), new OkayToRun());
 	}
-	
+
+	//TODO Refactor to replace AfterSuccessfulScenario/AfterUnsuccessfulScenario -> AfterScenario(successful="true/false")
 	public List<Step> runAfterScenario() {
 		List<Step> steps = new ArrayList<Step>();
 		steps.addAll(stepsHaving(AfterScenario.class, new OkayToRun(), new OkayToRun()));
@@ -135,18 +136,18 @@
 		return steps;
 	}
 
-	private List<Step> stepsHaving(final Class<? extends Annotation> annotation, final StepPart forSuccessfulScenarios, final StepPart forUnsuccessfulScenarios) {
+	private List<Step> stepsHaving(final Class<? extends Annotation> annotationClass, final StepPart forSuccessfulScenarios, final StepPart forUnsuccessfulScenarios) {
 		ArrayList<Step> steps = new ArrayList<Step>();
         for (final Method method : this.getClass().getMethods()) {
-			if (method.isAnnotationPresent(annotation)) {
+			if (method.isAnnotationPresent(annotationClass)) {				
 				steps.add(new Step() {
 
 					public StepResult doNotPerform() {
-						return forUnsuccessfulScenarios.run(annotation, method);
+						return forUnsuccessfulScenarios.run(annotationClass, method);
 					}
 
 					public StepResult perform() {
-								return forSuccessfulScenarios.run(annotation, method);
+						return forSuccessfulScenarios.run(annotationClass, method);
 					}
 					
 				});


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to