Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .docs/world.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public enum HolidayCalendar {
GEORGIA("GE"), GERMANY(Locale.GERMANY.getCountry()), GIBRALTAR("GI"), GUATEMALA("GT"), GUERNSEY("GG"), GREECE("GR"), GREENLAND("GL"),
HONDURAS("HN"), HONG_KONG("HK"), HUNGARY("HU"),
ICELAND("IS"), INDIA("IN"), IRELAND("IE"), ISLE_OF_MAN("IM"), ITALY(Locale.ITALY.getCountry()),
JAPAN("JP"), JERSEY("JE"),
JAMAICA("JM"), JAPAN("JP"), JERSEY("JE"),
KAZAKHSTAN("KZ"), KOSOVO("XK"),
LATVIA("LV"), LIECHTENSTEIN("LI"), LITHUANIA("LT"), LONDON_METAL_EXCHANGE("LME"), LUXEMBOURG("LU"),
MACEDONIA("MK"), MALTA("MT"), MONACO("MC"), MOROCCO("MA"), MAURITIUS("MU"), MEXICO("MX"), MOLDOVA("MD"), MONTENEGRO("ME"),
Expand Down
95 changes: 95 additions & 0 deletions jollyday-core/src/main/resources/holidays/Holidays_jm.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>

<Configuration hierarchy="jm" description="Jamaica"
xmlns="https://focus_shift.de/jollyday/schema/holiday"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://focus_shift.de/jollyday/schema/holiday https://focus_shift.de/jollyday/schema/holiday/holiday.xsd">
<Holidays>
<Fixed month="JANUARY" day="1" descriptionPropertiesKey="NEW_YEAR">
<MovingCondition substitute="SUNDAY" with="NEXT" weekday="MONDAY"/>
</Fixed>
<Fixed month="MAY" day="23" descriptionPropertiesKey="LABOUR_DAY">
<MovingCondition substitute="SATURDAY" with="NEXT" weekday="MONDAY"/>
<MovingCondition substitute="SUNDAY" with="NEXT" weekday="MONDAY"/>
</Fixed>
<Fixed month="AUGUST" day="1" descriptionPropertiesKey="EMANCIPATION_DAY">
<MovingCondition substitute="SUNDAY" with="NEXT" weekday="MONDAY"/>
</Fixed>
<Fixed month="AUGUST" day="6" descriptionPropertiesKey="INDEPENDENCE_DAY">
<MovingCondition substitute="SUNDAY" with="NEXT" weekday="MONDAY"/>
</Fixed>
<Fixed month="DECEMBER" day="25" descriptionPropertiesKey="CHRISTMAS">
<MovingCondition substitute="SUNDAY" with="NEXT" weekday="MONDAY"/>
</Fixed>
<Fixed month="DECEMBER" day="26" descriptionPropertiesKey="BOXING_DAY">
<MovingCondition substitute="SUNDAY" with="NEXT" weekday="MONDAY"/>
</Fixed>

<FixedWeekday which="THIRD" weekday="MONDAY" month="OCTOBER" descriptionPropertiesKey="HEROES"/>

<ChristianHoliday type="ASH_WEDNESDAY"/>
<ChristianHoliday type="GOOD_FRIDAY"/>
<ChristianHoliday type="EASTER_MONDAY"/>
</Holidays>

<Sources>
<Source>https://en.wikipedia.org/wiki/Public_holidays_in_Jamaica</Source>
<Source of="ISO 3166-2">https://en.wikipedia.org/wiki/ISO_3166-2:JM</Source>
</Sources>

<SubConfigurations hierarchy="01" description="Kingston">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="02" description="Saint Andrew">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="03" description="Saint Thomas">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="04" description="Portland">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="05" description="Saint Mary">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="06" description="Saint Ann">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="07" description="Trelawny">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="08" description="Saint James">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="09" description="Hanover">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="10" description="Westmoreland">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="11" description="Saint Elizabeth">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="12" description="Manchester">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="13" description="Clarendon">
<Holidays/>
</SubConfigurations>

<SubConfigurations hierarchy="14" description="Saint Catherine">
<Holidays/>
</SubConfigurations>
</Configuration>
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package de.focus_shift.jollyday.tests.country;

import org.junit.jupiter.api.Test;

import static de.focus_shift.jollyday.core.HolidayCalendar.JAMAICA;
import static de.focus_shift.jollyday.tests.CalendarCheckerApi.assertFor;
import static java.time.DayOfWeek.MONDAY;
import static java.time.DayOfWeek.SATURDAY;
import static java.time.DayOfWeek.SUNDAY;
import static java.time.Month.AUGUST;
import static java.time.Month.DECEMBER;
import static java.time.Month.JANUARY;
import static java.time.Month.MAY;

class HolidayJMTest {

@Test
void ensuresHolidays() {

assertFor(JAMAICA)
.hasFixedHoliday("NEW_YEAR", JANUARY, 1)
.canBeMovedFrom(SUNDAY, MONDAY)
.and()
.hasFixedHoliday("LABOUR_DAY", MAY, 23)
.canBeMovedFrom(SATURDAY, MONDAY)
.canBeMovedFrom(SUNDAY, MONDAY)
.and()
.hasFixedHoliday("EMANCIPATION_DAY", AUGUST, 1)
.canBeMovedFrom(SUNDAY, MONDAY)
.and()
.hasFixedHoliday("INDEPENDENCE_DAY", AUGUST, 6)
.canBeMovedFrom(SUNDAY, MONDAY)
.and()
.hasFixedHoliday("CHRISTMAS", DECEMBER, 25)
.canBeMovedFrom(SUNDAY, MONDAY)
.and()
.hasFixedHoliday("BOXING_DAY", DECEMBER, 26)
.canBeMovedFrom(SUNDAY, MONDAY)
.and()
.hasChristianHoliday("ASH_WEDNESDAY").and()
.hasChristianHoliday("GOOD_FRIDAY").and()
.hasChristianHoliday("EASTER_MONDAY")
.check();
}
}
Loading