Repository: focus-shift/jollyday
Pull request #433 (2024-01-16 20:41:03)

Improve dutch holiday naming
To match the commonly used Dutch naming, updated these days:
- 'king's day' -> 'Koningsdag'
- replaced 'STEPHENS' with 'SECOND_CHRISTMAS_DAY', as St.Stephens is not celebrated
- changed Easter, Pentecost and Christmas to use first/second day style ('eerste'/'tweede' in Dutch)

After this update, the list of holidays in the Netherlands, in Dutch will be:
```
Nieuwjaar
Dag van de koning --> Koningsdag
Bevrijdingsdag
Goede vrijdag
Pasen --> Eerste paasdag
Paasmaandag --> Tweede paasdag
Hemelvaartsdag
Pinksteren --> Eerste pinksterdag
Pinkstermaandag --> Tweede pinksterdag
Kerstmis --> Eerste kerstdag
St.Stephen's Dag --> Tweede kerstdag
```

For reference, two pages on Dutch holidays: [Dutch government site](https://www.rijksoverheid.nl/onderwerpen/arbeidsovereenkomst-en-cao/vraag-en-antwoord/officiele-feestdagen) and [the wikipedia page](https://en.wikipedia.org/wiki/Public_holidays_in_the_Netherlands).


Patch:
diff --git a/jollyday-core/src/main/resources/descriptions/holiday_descriptions_nl.properties b/jollyday-core/src/main/resources/descriptions/holiday_descriptions_nl.properties
index ae664429..92fc6bcb 100644
--- a/jollyday-core/src/main/resources/descriptions/holiday_descriptions_nl.properties
+++ b/jollyday-core/src/main/resources/descriptions/holiday_descriptions_nl.properties
@@ -173,7 +173,7 @@ holiday.description.JUNETEENTH                       = Juneteenth
 holiday.description.KALANIANAOLE                     = Dag van prins Jonah Kuhio Kalanianaole
 holiday.description.KAMEHAMEHA                       = Kamehameha Dag
 holiday.description.KINGS_CORONATION                 = King's Coronation
-holiday.description.KINGS_DAY                        = Dag van de koning
+holiday.description.KINGS_DAY                        = Koningsdag
 holiday.description.KINGS_FEAST                      = Koningsfeest
 holiday.description.KRUGER                           = Kruger dag
 holiday.description.LABOUR_DAY                       = Dag van de arbeid
@@ -346,16 +346,16 @@ holiday.description.christian.ASH_WEDNESDAY          = Aswoensdag
 holiday.description.christian.CARNIVAL               = Carnaval
 holiday.description.christian.CLEAN_MONDAY           = Schone maandag
 holiday.description.christian.CORPUS_CHRISTI         = Sacrementsdag
-holiday.description.christian.EASTER                 = Pasen
-holiday.description.christian.EASTER_MONDAY          = Paasmaandag
+holiday.description.christian.EASTER                 = Eerste paasdag
+holiday.description.christian.EASTER_MONDAY          = Tweede paasdag
 holiday.description.christian.EASTER_SATURDAY        = Paaszaterdag
 holiday.description.christian.EASTER_TUESDAY         = Paasdinsdag
 holiday.description.christian.GENERAL_PRAYER_DAY     = Dag van het gebed
 holiday.description.christian.GOOD_FRIDAY            = Goede vrijdag
 holiday.description.christian.MARDI_GRAS             = Mardi Gras
 holiday.description.christian.MAUNDY_THURSDAY        = Witte donderdag
-holiday.description.christian.PENTECOST              = Pinksteren
-holiday.description.christian.PENTECOST_MONDAY       = Pinksteren maandag
+holiday.description.christian.PENTECOST              = Eerste pinksterdag
+holiday.description.christian.PENTECOST_MONDAY       = Tweede pinksterdag
 holiday.description.christian.SACRED_HEART           = Heilig hart
 holiday.description.christian.SHROVE_MONDAY          = Vastenmaandag
 holiday.description.christian.WHIT_MONDAY            = Pinkstermaandag
diff --git a/jollyday-core/src/main/resources/holidays/Holidays_nl.xml b/jollyday-core/src/main/resources/holidays/Holidays_nl.xml
index 03beabda..77130fdf 100644
--- a/jollyday-core/src/main/resources/holidays/Holidays_nl.xml
+++ b/jollyday-core/src/main/resources/holidays/Holidays_nl.xml
@@ -18,13 +18,13 @@
     </Fixed>
     <Fixed month="MAY" day="5" validFrom="1945" validTo="1989" descriptionPropertiesKey="LIBERATION" every="FIVE_YEARS"/>
     <Fixed month="MAY" day="5" validFrom="1990" descriptionPropertiesKey="LIBERATION"/>
-    <Fixed month="DECEMBER" day="25" descriptionPropertiesKey="CHRISTMAS"/>
-    <Fixed month="DECEMBER" day="26" descriptionPropertiesKey="STEPHENS"/>
+    <Fixed month="DECEMBER" day="25" descriptionPropertiesKey="FIRST_CHRISTMAS_DAY"/>
+    <Fixed month="DECEMBER" day="26" descriptionPropertiesKey="SECOND_CHRISTMAS_DAY"/>
     <ChristianHoliday type="GOOD_FRIDAY" descriptionPropertiesKey="christian.GOOD_FRIDAY"/>
     <ChristianHoliday type="EASTER" descriptionPropertiesKey="christian.EASTER"/>
     <ChristianHoliday type="EASTER_MONDAY" validFrom="1642" descriptionPropertiesKey="christian.EASTER_MONDAY"/>
     <ChristianHoliday type="ASCENSION_DAY" descriptionPropertiesKey="christian.ASCENSION_DAY"/>
     <ChristianHoliday type="PENTECOST" descriptionPropertiesKey="christian.PENTECOST"/>
-    <ChristianHoliday type="WHIT_MONDAY" descriptionPropertiesKey="christian.WHIT_MONDAY"/>
+    <ChristianHoliday type="PENTECOST_MONDAY" descriptionPropertiesKey="christian.PENTECOST_MONDAY"/>
   </Holidays>
 </Configuration>


Test patch:
diff --git a/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayNLTest.java b/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayNLTest.java
index ad149c27..be328283 100644
--- a/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayNLTest.java
+++ b/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidayNLTest.java
@@ -80,21 +80,21 @@ class HolidayNLTest extends AbstractCountryTestBase {
   }
 
   @Property
-  void ensuresThatChristmasIsConfigured(@ForAll @YearRange Year year) {
+  void ensuresThatFirstChristmasDayIsConfigured(@ForAll @YearRange Year year) {
     final HolidayManager holidayManager = HolidayManager.getInstance(create(NETHERLANDS));
     final Set<Holiday> holidays = holidayManager.getHolidays(year.getValue());
     assertThat(holidays)
       .isNotEmpty()
-      .contains(new Holiday(LocalDate.of(year.getValue(), DECEMBER, 25), "CHRISTMAS", OFFICIAL_HOLIDAY));
+      .contains(new Holiday(LocalDate.of(year.getValue(), DECEMBER, 25), "FIRST_CHRISTMAS_DAY", OFFICIAL_HOLIDAY));
   }
 
   @Property
-  void ensuresThatStephensIsConfigured(@ForAll @YearRange Year year) {
+  void ensuresThatSecondChristmasDayIsConfigured(@ForAll @YearRange Year year) {
     final HolidayManager holidayManager = HolidayManager.getInstance(create(NETHERLANDS));
     final Set<Holiday> holidays = holidayManager.getHolidays(year.getValue());
     assertThat(holidays)
       .isNotEmpty()
-      .contains(new Holiday(LocalDate.of(year.getValue(), DECEMBER, 26), "STEPHENS", OFFICIAL_HOLIDAY));
+      .contains(new Holiday(LocalDate.of(year.getValue(), DECEMBER, 26), "SECOND_CHRISTMAS_DAY", OFFICIAL_HOLIDAY));
   }
 
   @Property
@@ -158,12 +158,12 @@ class HolidayNLTest extends AbstractCountryTestBase {
   }
 
   @Property
-  void ensuresThatWhitMondayIsConfigured(@ForAll @YearRange Year year) {
+  void ensuresThatPentecostMondayIsConfigured(@ForAll @YearRange Year year) {
     final HolidayManager holidayManager = HolidayManager.getInstance(create(NETHERLANDS));
     final Set<Holiday> holidays = holidayManager.getHolidays(year.getValue());
     assertThat(holidays)
       .isNotEmpty()
       .extracting(Holiday::getPropertiesKey)
-      .contains("christian.WHIT_MONDAY");
+      .contains("christian.PENTECOST_MONDAY");
   }
 }