Merge pull request #721 from KyleAure/717-DocumentationExampleTest-locale
test: verify localization tests
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 43086e1..6374c2a 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -24,12 +24,18 @@
jobs:
build:
- name: Test on JDK ${{ matrix.java_version }}
+ name: Test on JDK ${{ matrix.java_version }} locale ${{ matrix.locale }}
runs-on: ubuntu-latest
strategy:
matrix:
java_version: [ 11, 17, 21 ]
+ include:
+ - locale: en_US
+ # Use a different locale when running against one of the java versions
+ # to ensure we correctly write tests that account for localization differences.
+ - locale: de_AT
+ java_version: 21
steps:
- name: Checkout for build
@@ -49,6 +55,12 @@
- name: Yasson install
run: mvn -U -C clean install -DskipTests
- name: Yasson tests
- run: mvn -U -B -C -Dmaven.javadoc.skip=true verify
+ run: |
+ export LANG_TAG="${{ matrix.locale }}"
+ mvn -U -B -C \
+ -Dmaven.javadoc.skip=true \
+ -Duser.language="${LANG_TAG%%_*}" \
+ -Duser.country="${LANG_TAG##*_}" \
+ verify
- name: JSONB-API TCK
run: cd yasson-tck && mvn -U -B test -DargLine="-Djava.locale.providers=COMPAT"
diff --git a/src/test/java/org/eclipse/yasson/documented/DocumentationExampleTest.java b/src/test/java/org/eclipse/yasson/documented/DocumentationExampleTest.java
index d49e4a0..5012e78 100644
--- a/src/test/java/org/eclipse/yasson/documented/DocumentationExampleTest.java
+++ b/src/test/java/org/eclipse/yasson/documented/DocumentationExampleTest.java
@@ -351,7 +351,7 @@
@JsonbDateFormat("dd.MM.yyyy")
public LocalDate birthDate;
- @JsonbNumberFormat("#0.00")
+ @JsonbNumberFormat(value = "#0.00", locale="en_US")
public BigDecimal salary;
}
@@ -375,24 +375,25 @@
public LocalDate birthDate;
+ @JsonbNumberFormat(value = "#0.00", locale="en_US") // TODO: remove if withNumberFormat is added to JsonbConfig builder
public BigDecimal salary;
}
- @Test
+ @Test //TODO https://github.com/eclipse-ee4j/yasson/issues/722
public void testDateNumberFormats2() {
Person10 p = new Person10();
p.name = "Jason Bourne";
p.birthDate = LocalDate.of(1999, 8, 7);
p.salary = new BigDecimal("123.45678");
Jsonb jsonb = JsonbBuilder.create(new JsonbConfig()//
- .withDateFormat("dd.MM.yyyy", null)); // TODO: why no withNumberFormat?
+ .withDateFormat("dd.MM.yyyy", null)); // TODO: add withNumberFormat if added to JsonbConfig builder
String json = jsonb.toJson(p);
- assertEquals("{\"birthDate\":\"07.08.1999\",\"name\":\"Jason Bourne\",\"salary\":123.45678}", json);
+ assertEquals("{\"birthDate\":\"07.08.1999\",\"name\":\"Jason Bourne\",\"salary\":\"123.46\"}", json);
- Person9 after = jsonb.fromJson("{\"birthDate\":\"07.08.1999\",\"name\":\"Jason Bourne\",\"salary\":123.45678}", Person9.class);
+ Person9 after = jsonb.fromJson("{\"birthDate\":\"07.08.1999\",\"name\":\"Jason Bourne\",\"salary\":\"123.46\"}", Person9.class);
assertEquals(p.name, after.name);
assertEquals(p.birthDate, after.birthDate);
- assertEquals(p.salary, after.salary);
+ assertEquals(new BigDecimal("123.46"), after.salary);
}
public static class Customer {