Skip to content

Commit c29482d

Browse files
committed
Upgrade to core v 4.2.0
1 parent 5a48863 commit c29482d

File tree

4 files changed

+32
-8
lines changed

4 files changed

+32
-8
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<minimum.maven.version>3.3</minimum.maven.version>
3131
<outputDirectory>${project.build.directory}</outputDirectory>
3232
<scala-maven-plugin.version>3.2.2</scala-maven-plugin.version>
33-
<cucumber.version>4.1.0</cucumber.version>
33+
<cucumber.version>4.2.0</cucumber.version>
3434
<gherkin.version>5.1.0</gherkin.version>
3535
<groovy.version>2.4.12</groovy.version>
3636
<junit.version>4.12</junit.version>

scala/sources/src/main/scala/cucumber/runtime/scala/ScalaStepDefinition.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cucumber.runtime.scala
22

33
import java.lang.reflect.Type
4-
54
import cucumber.runtime.StepDefinition
65
import gherkin.pickles.PickleStep
76
import io.cucumber.stepexpression._
@@ -37,7 +36,7 @@ class ScalaStepDefinition(frame:StackTraceElement,
3736
def matchedArguments(step: PickleStep) = {
3837
expression = createExpression(pattern, typeRegistry)
3938
val argumentMatcher = new ExpressionArgumentMatcher(expression)
40-
argumentMatcher.argumentsFrom(step)
39+
argumentMatcher.argumentsFrom(step, parameterInfos:_*)
4140
}
4241

4342
private def createExpression(expression: String, typeRegistry: TypeRegistry): StepExpression = {

scala/sources/src/test/scala/cucumber/runtime/scala/test/StepDefs.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import io.cucumber.datatable.DataTable
1414
*/
1515
class CukesStepDefinitions extends ScalaDsl with EN {
1616

17-
Given("""I have {int} {string} in my belly""") { (howMany: Int, what: String) =>
17+
Given("""I have {} {string} in my belly""") { (howMany: Int, what: String) =>
1818

1919
}
2020

@@ -66,7 +66,7 @@ class CukesStepDefinitions extends ScalaDsl with EN {
6666

6767
var floatBelly: Float = 0.0f
6868

69-
Given("""I have eaten {float} floats""") { (arg0: Float) =>
69+
Given("""I have eaten {} floats""") { (arg0: Float) =>
7070
floatBelly = arg0
7171
}
7272
Then("""^I should have one and a half floats in my belly$""") { () =>

scala/sources/src/test/scala/cucumber/runtime/scala/test/TypeRegistryConfiguration.scala

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package cucumber.runtime.scala.test
22

3+
import java.lang.reflect.Type
34
import java.util
45
import java.util.Locale
5-
66
import cucumber.api.{TypeRegistry, TypeRegistryConfigurer}
77
import cucumber.runtime.scala.model.{Cukes, Person, Snake}
8-
import io.cucumber.cucumberexpressions.{ParameterType, Transformer}
9-
import io.cucumber.datatable.{DataTableType, TableEntryTransformer}
8+
import io.cucumber.cucumberexpressions.{ParameterByTypeTransformer, ParameterType, Transformer}
9+
import io.cucumber.datatable.dependency.com.fasterxml.jackson.databind.ObjectMapper
10+
import io.cucumber.datatable.{DataTableType, TableCellByTypeTransformer, TableEntryByTypeTransformer, TableEntryTransformer}
1011

1112
class TypeRegistryConfiguration extends TypeRegistryConfigurer {
1213

@@ -56,6 +57,11 @@ class TypeRegistryConfiguration extends TypeRegistryConfigurer {
5657
override def locale(): Locale = Locale.ENGLISH
5758

5859
override def configureTypeRegistry(typeRegistry: TypeRegistry): Unit = {
60+
val defaultTransformer = new DefaultTransformer()
61+
typeRegistry.setDefaultDataTableCellTransformer(defaultTransformer)
62+
typeRegistry.setDefaultDataTableEntryTransformer(defaultTransformer)
63+
typeRegistry.setDefaultParameterTransformer(defaultTransformer)
64+
5965
typeRegistry.defineParameterType(new ParameterType[Snake](
6066
"snake",
6167
"[=><]+",
@@ -86,5 +92,24 @@ class TypeRegistryConfiguration extends TypeRegistryConfigurer {
8692

8793
typeRegistry.defineDataTableType(new DataTableType(classOf[Cukes],listTransformer))
8894
}
95+
private class DefaultTransformer
96+
extends ParameterByTypeTransformer
97+
with TableEntryByTypeTransformer
98+
with TableCellByTypeTransformer {
99+
100+
var objectMapper: ObjectMapper = new ObjectMapper()
101+
102+
override def transform(s: String, `type`: Type): AnyRef =
103+
objectMapper.convertValue(s, objectMapper.constructType(`type`))
104+
105+
106+
override def transform[T](s: String, aClass: Class[T]): T =
107+
objectMapper.convertValue(s, aClass)
108+
109+
override def transform[T](map: util.Map[String, String],
110+
aClass: Class[T],
111+
tableCellByTypeTransformer: TableCellByTypeTransformer): T =
112+
objectMapper.convertValue(map, aClass)
113+
}
89114

90115
}

0 commit comments

Comments
 (0)