Skip to content

Commit b234961

Browse files
committed
Remove TypeRegistryConfigurer in cukes test
1 parent 32fa39b commit b234961

File tree

1 file changed

+23
-97
lines changed

1 file changed

+23
-97
lines changed
Lines changed: 23 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,41 @@
11
package tests.cukes
22

3-
import java.lang.reflect.Type
4-
import java.util
5-
import java.util.{Locale, Map => JMap}
6-
7-
import com.fasterxml.jackson.databind.ObjectMapper
8-
import io.cucumber.core.api.{TypeRegistry, TypeRegistryConfigurer}
9-
import io.cucumber.cucumberexpressions.{ParameterByTypeTransformer, ParameterType, Transformer}
10-
import io.cucumber.datatable.{DataTableType, TableCellByTypeTransformer, TableEntryByTypeTransformer, TableEntryTransformer}
3+
import io.cucumber.scala.ScalaDsl
114
import tests.cukes.model.{Cukes, Person, Snake}
125

13-
import scala.annotation.nowarn
14-
15-
@nowarn
16-
class TypeRegistryConfiguration extends TypeRegistryConfigurer {
6+
class TypeRegistryConfiguration extends ScalaDsl {
177

188
/**
19-
* Transforms an ASCII snake into an object, for example:
20-
*
21-
* {{{
22-
* ====> becomes Snake(length = 5, direction = 'east)
23-
* ==> becomes Snake(length = 3, direction = 'east)
24-
* }}}
25-
*/
26-
private val snakeTransformer = new Transformer[Snake]() {
27-
def transform(s: String) = {
28-
val size = s.size
29-
val direction = s.toList match {
30-
case '<' :: _ => Symbol("west")
31-
case l if l.last == '>' => Symbol("east")
32-
}
33-
Snake(size, direction)
34-
}
35-
}
36-
37-
private val personTransformer = new Transformer[Person]() {
38-
def transform(s: String) = {
39-
Person(s)
9+
* Transforms an ASCII snake into an object, for example:
10+
*
11+
* {{{
12+
* ====> becomes Snake(length = 5, direction = 'east)
13+
* ==> becomes Snake(length = 3, direction = 'east)
14+
* }}}
15+
*/
16+
ParameterType("snake", "[=><]+") { s =>
17+
val size = s.length
18+
val direction = s.toList match {
19+
case '<' :: _ => Symbol("west")
20+
case l if l.last == '>' => Symbol("east")
4021
}
22+
Snake(size, direction)
4123
}
4224

43-
private val booleanTransformer = new Transformer[Boolean]() {
44-
def transform(s: String) = {
45-
s.trim.equals("true")
46-
}
25+
ParameterType("person", ".+") { s =>
26+
Person(s)
4727
}
4828

49-
private val charTransformer = new Transformer[Char]() {
50-
def transform(s: String) = {
51-
s.charAt(0)
52-
}
53-
}
54-
55-
private val listTransformer =new TableEntryTransformer[Cukes]() {
56-
override def transform(map: util.Map[String, String]): Cukes = {
57-
new Cukes(map.get("Number").toInt, map.get("Color"))
58-
}
29+
ParameterType("boolean", "true|false") { s =>
30+
s.trim.equals("true")
5931
}
6032

61-
override def locale(): Locale = Locale.ENGLISH
62-
63-
override def configureTypeRegistry(typeRegistry: TypeRegistry): Unit = {
64-
val defaultTransformer = new DefaultTransformer()
65-
typeRegistry.setDefaultDataTableCellTransformer(defaultTransformer)
66-
typeRegistry.setDefaultDataTableEntryTransformer(defaultTransformer)
67-
typeRegistry.setDefaultParameterTransformer(defaultTransformer)
68-
69-
typeRegistry.defineParameterType(new ParameterType[Snake](
70-
"snake",
71-
"[=><]+",
72-
classOf[Snake],
73-
snakeTransformer
74-
))
75-
76-
typeRegistry.defineParameterType(new ParameterType[Person](
77-
"person",
78-
".+",
79-
classOf[Person],
80-
personTransformer
81-
))
82-
83-
typeRegistry.defineParameterType(new ParameterType[Boolean](
84-
"boolean",
85-
"true|false",
86-
classOf[Boolean],
87-
booleanTransformer
88-
))
89-
90-
typeRegistry.defineParameterType(new ParameterType[Char](
91-
"char",
92-
".",
93-
classOf[Char],
94-
charTransformer
95-
))
96-
97-
typeRegistry.defineDataTableType(new DataTableType(classOf[Cukes],listTransformer))
33+
ParameterType("char", ".") { s =>
34+
s.charAt(0)
9835
}
99-
private class DefaultTransformer
100-
extends ParameterByTypeTransformer
101-
with TableEntryByTypeTransformer
102-
with TableCellByTypeTransformer {
103-
104-
var objectMapper: ObjectMapper = new ObjectMapper()
105-
106-
override def transform(s: String, `type`: Type): AnyRef =
107-
objectMapper.convertValue(s, objectMapper.constructType(`type`))
108-
109-
override def transform(map: JMap[String, String], `type`: Type, tableCellByTypeTransformer: TableCellByTypeTransformer): AnyRef = {
110-
objectMapper.convertValue(map, objectMapper.constructType(`type`))
111-
}
11236

37+
DataTableType { map: Map[String, String] =>
38+
Cukes(map("Number").toInt, map("Color"))
11339
}
11440

11541
}

0 commit comments

Comments
 (0)