Skip to content

Commit 02da4a7

Browse files
committed
split @ParameterType and @default*Transformer example
1 parent 8e11e9a commit 02da4a7

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

cucumber-java/README.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -339,11 +339,9 @@ scenario's language. For example, localized features about summer solstice may p
339339
package com.example.app;
340340

341341
import io.cucumber.java.Before;
342-
import io.cucumber.java.DefaultParameterTransformer;
343342
import io.cucumber.java.ParameterType;
344343
import io.cucumber.java.Scenario;
345344

346-
import java.lang.reflect.Type;
347345
import java.time.LocalDate;
348346
import java.time.format.DateTimeFormatter;
349347
import java.util.Locale;
@@ -359,16 +357,6 @@ public class TransformerDefinitions {
359357
formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy").withLocale(locale);
360358
}
361359

362-
@DefaultParameterTransformer
363-
public Object transform(final String value, final Type type)
364-
throws Exception {
365-
if (LocalDate.class.equals(type)) {
366-
return LocalDate.parse(value.toString(), formatter);
367-
} else {
368-
throw new UnsupportedOperationException("Can't transform '" + value + "' to " + type);
369-
}
370-
}
371-
372360
@ParameterType(name = "date", value = "\\d{1,2} \\w+ \\d{4}")
373361
public LocalDate parseLocalDate(String value) {
374362
return LocalDate.parse(value, formatter);
@@ -377,6 +365,21 @@ public class TransformerDefinitions {
377365
}
378366
```
379367

368+
Similar, the example `ObjectMapper` of the [aforementioned default transformers](#default-transformers) can be localized
369+
before each scenario.
370+
371+
```java
372+
[...]
373+
@Before
374+
public void updateObjectMapper(final Scenario scenario) {
375+
String language = scenario.getLanguage();
376+
Locale locale = new Locale.Builder().setLanguage(language).build();
377+
objectMapper.setLocale(locale);
378+
}
379+
[...]
380+
```
381+
382+
380383
### Empty Cells
381384

382385
Data tables in Gherkin cannot represent null or an empty string unambiguously. Cucumber will interpret empty cells as

0 commit comments

Comments
 (0)