commit 6e50ef8d8cf00156af23a116c9f076ef833c1114
Author: Mauro Talevi <[email protected]>
AuthorDate: Sun, 26 May 2013 13:23:47 +0200
Commit: Mauro Talevi <[email protected]>
CommitDate: Sun, 26 May 2013 13:38:53 +0200
JBEHAVE-917: Allow generic lists.
diff --git
a/jbehave-core/src/main/java/org/jbehave/core/steps/InstanceStepsFactory.java
b/jbehave-core/src/main/java/org/jbehave/core/steps/InstanceStepsFactory.java
index 890de56..1c3877a 100755
---
a/jbehave-core/src/main/java/org/jbehave/core/steps/InstanceStepsFactory.java
+++
b/jbehave-core/src/main/java/org/jbehave/core/steps/InstanceStepsFactory.java
@@ -20,7 +20,7 @@ public class InstanceStepsFactory extends
AbstractStepsFactory {
this(configuration, asList(stepsInstances));
}
- public InstanceStepsFactory(Configuration configuration, List<Object>
stepsInstances) {
+ public InstanceStepsFactory(Configuration configuration, List<?>
stepsInstances) {
super(configuration);
for (Object instance : stepsInstances) {
this.stepsInstances.put(instance.getClass(), instance);
diff --git
a/jbehave-core/src/test/java/org/jbehave/core/steps/InstanceStepsFactoryBehaviour.java
b/jbehave-core/src/test/java/org/jbehave/core/steps/InstanceStepsFactoryBehaviour.java
index 8dee8eb..3fc8fc0 100755
---
a/jbehave-core/src/test/java/org/jbehave/core/steps/InstanceStepsFactoryBehaviour.java
+++
b/jbehave-core/src/test/java/org/jbehave/core/steps/InstanceStepsFactoryBehaviour.java
@@ -5,6 +5,7 @@ import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
+import java.util.ArrayList;
import java.util.List;
import org.jbehave.core.annotations.AsParameterConverter;
@@ -33,6 +34,28 @@ public class InstanceStepsFactoryBehaviour {
assertThat(factory.hasAnnotatedMethods(NoAnnotatedMethods.class),
is(false));
}
+ @Test
+ public void shouldAllowGenericList() {
+ List<? super MyInterface> list = new ArrayList<MyInterface>();
+ list.add(new MyStepsAWithInterface());
+ list.add(new MyStepsBWithInterface());
+ InstanceStepsFactory factory = new InstanceStepsFactory(
+ new MostUsefulConfiguration(), list);
+ List<CandidateSteps> candidateSteps =
factory.createCandidateSteps();
+ assertThat(candidateSteps.size(), equalTo(2));
+
+ }
+
+ static interface MyInterface {
+
+ }
+
+ static class MyStepsAWithInterface implements MyInterface {
+ }
+
+ static class MyStepsBWithInterface implements MyInterface {
+ }
+
static class MySteps {
@Given("foo named $name")