From e5f35d134bce63557646ab3298a2c62de39d0535 Mon Sep 17 00:00:00 2001 From: John Ferguson Smart Date: Sat, 13 Oct 2012 11:03:02 +1100 Subject: [PATCH] Added built-in support for enum conversions --- pom.xml | 4 ++-- .../java/net/thucydides/jbehave/ThucydidesJBehave.java | 4 ++++ .../thucydides/jbehave/APassingBehaviorWithState.java | 6 ++++++ .../thucydides/jbehave/steps/SomeStepsWithState.java | 10 +++++++--- .../resources/stories/aPassingBehaviorWithState.story | 4 ++-- 5 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 src/test/java/net/thucydides/jbehave/APassingBehaviorWithState.java diff --git a/pom.xml b/pom.xml index 7687b82..32aa456 100644 --- a/pom.xml +++ b/pom.xml @@ -4,11 +4,11 @@ thucydides net.thucydides - 0.9.24 + 0.9.28 net.thucydides thucydides-jbehave-plugin - 0.9.24-SNAPSHOT + 0.9.28-SNAPSHOT thucydides-jbehave-plugin UTF-8 diff --git a/src/main/java/net/thucydides/jbehave/ThucydidesJBehave.java b/src/main/java/net/thucydides/jbehave/ThucydidesJBehave.java index e0b8d3a..0ea02c3 100644 --- a/src/main/java/net/thucydides/jbehave/ThucydidesJBehave.java +++ b/src/main/java/net/thucydides/jbehave/ThucydidesJBehave.java @@ -9,6 +9,7 @@ import org.jbehave.core.reporters.FilePrintStreamFactory; import org.jbehave.core.reporters.Format; import org.jbehave.core.reporters.StoryReporterBuilder; +import org.jbehave.core.steps.ParameterConverters; import java.util.List; import java.util.Properties; @@ -41,6 +42,9 @@ public static Configuration defaultConfiguration(net.thucydides.core.webdriver.C viewResources.put("decorateNonHtml", "true"); return new ParanamerConfiguration() + .useParameterConverters( + new ParameterConverters().addConverters(new ParameterConverters.EnumConverter(), + new ParameterConverters.EnumListConverter())) .useStoryReporterBuilder( new StoryReporterBuilder() .withDefaultFormats() diff --git a/src/test/java/net/thucydides/jbehave/APassingBehaviorWithState.java b/src/test/java/net/thucydides/jbehave/APassingBehaviorWithState.java new file mode 100644 index 0000000..e74ad4d --- /dev/null +++ b/src/test/java/net/thucydides/jbehave/APassingBehaviorWithState.java @@ -0,0 +1,6 @@ +package net.thucydides.jbehave; + +public class APassingBehaviorWithState extends ThucydidesJUnitStory { + public APassingBehaviorWithState() { + } +} diff --git a/src/test/java/net/thucydides/jbehave/steps/SomeStepsWithState.java b/src/test/java/net/thucydides/jbehave/steps/SomeStepsWithState.java index aa9f109..0e6c635 100644 --- a/src/test/java/net/thucydides/jbehave/steps/SomeStepsWithState.java +++ b/src/test/java/net/thucydides/jbehave/steps/SomeStepsWithState.java @@ -10,20 +10,24 @@ public class SomeStepsWithState { - String field; + public enum Color { + RED, BLUE, GREEN + } + + Color field; @Given("I have a field") public void setupField() { } @When("I instantiate that field with value $value") - public void instantiateFieldWith(String value) { + public void instantiateFieldWith(Color value) { this.field = value; } @Then("the field should be set to $value in the following steps") - public void checkValueIsSet(String value) { + public void checkValueIsSet(Color value) { assertThat(field, is(value)); } diff --git a/src/test/resources/stories/aPassingBehaviorWithState.story b/src/test/resources/stories/aPassingBehaviorWithState.story index ea3da7f..cf65e4a 100644 --- a/src/test/resources/stories/aPassingBehaviorWithState.story +++ b/src/test/resources/stories/aPassingBehaviorWithState.story @@ -1,5 +1,5 @@ Scenario: A scenario that uses state Given I have a field -When I instantiate that field with value Red -Then the field should be set to Red in the following steps +When I instantiate that field with value RED +Then the field should be set to RED in the following steps