- 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:
