From 32fa39b60e93ae9c4b8ce8797d919006098cd2c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Jourdan-Weil?= Date: Sun, 7 Jun 2020 15:57:14 +0200 Subject: [PATCH 1/3] Remove strict flag on @CucumberOptions (now defaults to true) --- scala/sources/src/test/scala/tests/cukes/RunCukesTest.scala | 2 +- .../src/test/scala/tests/datatables/RunDatatablesTest.scala | 2 +- .../src/test/scala/tests/docstring/RunDocStringTest.scala | 2 +- .../sources/src/test/scala/tests/isolated/RunIsolatedTest.scala | 2 +- scala/sources/src/test/scala/tests/jackson/RunJacksonTest.scala | 2 +- scala/sources/src/test/scala/tests/misc/RunMiscTest.scala | 2 +- scala/sources/src/test/scala/tests/object/RunObjectTest.scala | 2 +- .../test/scala/tests/parametertypes/RunParameterTypesTest.scala | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scala/sources/src/test/scala/tests/cukes/RunCukesTest.scala b/scala/sources/src/test/scala/tests/cukes/RunCukesTest.scala index c86c236f..46232f07 100644 --- a/scala/sources/src/test/scala/tests/cukes/RunCukesTest.scala +++ b/scala/sources/src/test/scala/tests/cukes/RunCukesTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunCukesTest diff --git a/scala/sources/src/test/scala/tests/datatables/RunDatatablesTest.scala b/scala/sources/src/test/scala/tests/datatables/RunDatatablesTest.scala index 38a783e5..75a6f5cf 100644 --- a/scala/sources/src/test/scala/tests/datatables/RunDatatablesTest.scala +++ b/scala/sources/src/test/scala/tests/datatables/RunDatatablesTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunDatatablesTest diff --git a/scala/sources/src/test/scala/tests/docstring/RunDocStringTest.scala b/scala/sources/src/test/scala/tests/docstring/RunDocStringTest.scala index 5c6f1cae..b1b4bb74 100644 --- a/scala/sources/src/test/scala/tests/docstring/RunDocStringTest.scala +++ b/scala/sources/src/test/scala/tests/docstring/RunDocStringTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunDocStringTest diff --git a/scala/sources/src/test/scala/tests/isolated/RunIsolatedTest.scala b/scala/sources/src/test/scala/tests/isolated/RunIsolatedTest.scala index 107859d7..9bfd86cb 100644 --- a/scala/sources/src/test/scala/tests/isolated/RunIsolatedTest.scala +++ b/scala/sources/src/test/scala/tests/isolated/RunIsolatedTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunIsolatedTest diff --git a/scala/sources/src/test/scala/tests/jackson/RunJacksonTest.scala b/scala/sources/src/test/scala/tests/jackson/RunJacksonTest.scala index 2efc18c5..b33232fb 100644 --- a/scala/sources/src/test/scala/tests/jackson/RunJacksonTest.scala +++ b/scala/sources/src/test/scala/tests/jackson/RunJacksonTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunJacksonTest diff --git a/scala/sources/src/test/scala/tests/misc/RunMiscTest.scala b/scala/sources/src/test/scala/tests/misc/RunMiscTest.scala index 61d0ddbf..a4f6faf0 100644 --- a/scala/sources/src/test/scala/tests/misc/RunMiscTest.scala +++ b/scala/sources/src/test/scala/tests/misc/RunMiscTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunMiscTest diff --git a/scala/sources/src/test/scala/tests/object/RunObjectTest.scala b/scala/sources/src/test/scala/tests/object/RunObjectTest.scala index 90214a42..fb7120d8 100644 --- a/scala/sources/src/test/scala/tests/object/RunObjectTest.scala +++ b/scala/sources/src/test/scala/tests/object/RunObjectTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunObjectTest diff --git a/scala/sources/src/test/scala/tests/parametertypes/RunParameterTypesTest.scala b/scala/sources/src/test/scala/tests/parametertypes/RunParameterTypesTest.scala index 904e36c7..e5b3bfd8 100644 --- a/scala/sources/src/test/scala/tests/parametertypes/RunParameterTypesTest.scala +++ b/scala/sources/src/test/scala/tests/parametertypes/RunParameterTypesTest.scala @@ -4,5 +4,5 @@ import io.cucumber.junit.{Cucumber, CucumberOptions} import org.junit.runner.RunWith @RunWith(classOf[Cucumber]) -@CucumberOptions(strict = true) +@CucumberOptions() class RunParameterTypesTest From b2349612ebd5f77913d22cd31d8966fb87375992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Jourdan-Weil?= Date: Sun, 7 Jun 2020 16:17:12 +0200 Subject: [PATCH 2/3] Remove TypeRegistryConfigurer in cukes test --- .../cukes/TypeRegistryConfiguration.scala | 120 ++++-------------- 1 file changed, 23 insertions(+), 97 deletions(-) diff --git a/scala/sources/src/test/scala/tests/cukes/TypeRegistryConfiguration.scala b/scala/sources/src/test/scala/tests/cukes/TypeRegistryConfiguration.scala index e383c6da..5542fa1f 100644 --- a/scala/sources/src/test/scala/tests/cukes/TypeRegistryConfiguration.scala +++ b/scala/sources/src/test/scala/tests/cukes/TypeRegistryConfiguration.scala @@ -1,115 +1,41 @@ package tests.cukes -import java.lang.reflect.Type -import java.util -import java.util.{Locale, Map => JMap} - -import com.fasterxml.jackson.databind.ObjectMapper -import io.cucumber.core.api.{TypeRegistry, TypeRegistryConfigurer} -import io.cucumber.cucumberexpressions.{ParameterByTypeTransformer, ParameterType, Transformer} -import io.cucumber.datatable.{DataTableType, TableCellByTypeTransformer, TableEntryByTypeTransformer, TableEntryTransformer} +import io.cucumber.scala.ScalaDsl import tests.cukes.model.{Cukes, Person, Snake} -import scala.annotation.nowarn - -@nowarn -class TypeRegistryConfiguration extends TypeRegistryConfigurer { +class TypeRegistryConfiguration extends ScalaDsl { /** - * Transforms an ASCII snake into an object, for example: - * - * {{{ - * ====> becomes Snake(length = 5, direction = 'east) - * ==> becomes Snake(length = 3, direction = 'east) - * }}} - */ - private val snakeTransformer = new Transformer[Snake]() { - def transform(s: String) = { - val size = s.size - val direction = s.toList match { - case '<' :: _ => Symbol("west") - case l if l.last == '>' => Symbol("east") - } - Snake(size, direction) - } - } - - private val personTransformer = new Transformer[Person]() { - def transform(s: String) = { - Person(s) + * Transforms an ASCII snake into an object, for example: + * + * {{{ + * ====> becomes Snake(length = 5, direction = 'east) + * ==> becomes Snake(length = 3, direction = 'east) + * }}} + */ + ParameterType("snake", "[=><]+") { s => + val size = s.length + val direction = s.toList match { + case '<' :: _ => Symbol("west") + case l if l.last == '>' => Symbol("east") } + Snake(size, direction) } - private val booleanTransformer = new Transformer[Boolean]() { - def transform(s: String) = { - s.trim.equals("true") - } + ParameterType("person", ".+") { s => + Person(s) } - private val charTransformer = new Transformer[Char]() { - def transform(s: String) = { - s.charAt(0) - } - } - - private val listTransformer =new TableEntryTransformer[Cukes]() { - override def transform(map: util.Map[String, String]): Cukes = { - new Cukes(map.get("Number").toInt, map.get("Color")) - } + ParameterType("boolean", "true|false") { s => + s.trim.equals("true") } - override def locale(): Locale = Locale.ENGLISH - - override def configureTypeRegistry(typeRegistry: TypeRegistry): Unit = { - val defaultTransformer = new DefaultTransformer() - typeRegistry.setDefaultDataTableCellTransformer(defaultTransformer) - typeRegistry.setDefaultDataTableEntryTransformer(defaultTransformer) - typeRegistry.setDefaultParameterTransformer(defaultTransformer) - - typeRegistry.defineParameterType(new ParameterType[Snake]( - "snake", - "[=><]+", - classOf[Snake], - snakeTransformer - )) - - typeRegistry.defineParameterType(new ParameterType[Person]( - "person", - ".+", - classOf[Person], - personTransformer - )) - - typeRegistry.defineParameterType(new ParameterType[Boolean]( - "boolean", - "true|false", - classOf[Boolean], - booleanTransformer - )) - - typeRegistry.defineParameterType(new ParameterType[Char]( - "char", - ".", - classOf[Char], - charTransformer - )) - - typeRegistry.defineDataTableType(new DataTableType(classOf[Cukes],listTransformer)) + ParameterType("char", ".") { s => + s.charAt(0) } - private class DefaultTransformer - extends ParameterByTypeTransformer - with TableEntryByTypeTransformer - with TableCellByTypeTransformer { - - var objectMapper: ObjectMapper = new ObjectMapper() - - override def transform(s: String, `type`: Type): AnyRef = - objectMapper.convertValue(s, objectMapper.constructType(`type`)) - - override def transform(map: JMap[String, String], `type`: Type, tableCellByTypeTransformer: TableCellByTypeTransformer): AnyRef = { - objectMapper.convertValue(map, objectMapper.constructType(`type`)) - } + DataTableType { map: Map[String, String] => + Cukes(map("Number").toInt, map("Color")) } } From af916cdfaf307d50165abf395bcd0078dbd2796a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Jourdan-Weil?= Date: Sun, 7 Jun 2020 16:17:31 +0200 Subject: [PATCH 3/3] [build] Enable implicit conversions for Scala 2.11 and 2.12 --- scala/scala_2.11/pom.xml | 2 ++ scala/scala_2.12/pom.xml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/scala/scala_2.11/pom.xml b/scala/scala_2.11/pom.xml index 13317610..bac3719c 100644 --- a/scala/scala_2.11/pom.xml +++ b/scala/scala_2.11/pom.xml @@ -85,6 +85,8 @@ -deprecation -feature + + -language:implicitConversions **/*.java diff --git a/scala/scala_2.12/pom.xml b/scala/scala_2.12/pom.xml index be5e9703..438f552d 100644 --- a/scala/scala_2.12/pom.xml +++ b/scala/scala_2.12/pom.xml @@ -78,6 +78,8 @@ -deprecation -feature + + -language:implicitConversions **/*.java