diff --git a/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonChristianHolidayTest.java b/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonChristianHolidayTest.java new file mode 100644 index 000000000..cbfb8f9cb --- /dev/null +++ b/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonChristianHolidayTest.java @@ -0,0 +1,69 @@ +package de.focus_shift.jollyday.jackson; + +import de.focus_shift.jollyday.core.spi.Limited; +import de.focus_shift.jollyday.core.spi.Relation; +import de.focus_shift.jollyday.jackson.mapping.Fixed; +import de.focus_shift.jollyday.jackson.mapping.HolidayCycleType; +import de.focus_shift.jollyday.jackson.mapping.HolidayType; +import de.focus_shift.jollyday.jackson.mapping.Month; +import de.focus_shift.jollyday.jackson.mapping.RelativeToFixed; +import de.focus_shift.jollyday.jackson.mapping.Weekday; +import de.focus_shift.jollyday.jackson.mapping.When; +import org.junit.jupiter.api.Test; + +import java.time.DayOfWeek; +import java.time.Year; + +import static org.assertj.core.api.Assertions.assertThat; + +class JacksonChristianHolidayTest { + + @Test + void ensureDateIsSetAndMappedCorrectly() { + + final Fixed firstJanuary = new Fixed(); + firstJanuary.setDay(1); + firstJanuary.setMonth(Month.JANUARY); + + final RelativeToFixed relativeToFixed = new RelativeToFixed(); + relativeToFixed.setWeekday(Weekday.MONDAY); + relativeToFixed.setWhen(When.AFTER); + relativeToFixed.setDate(firstJanuary); + relativeToFixed.setEvery(HolidayCycleType.EVEN_YEARS); + relativeToFixed.setDescriptionPropertiesKey("description"); + relativeToFixed.setLocalizedType(HolidayType.BANK_HOLIDAY); + relativeToFixed.setValidFrom(2000); + relativeToFixed.setValidTo(2001); + final JacksonRelativeToFixed jacksonRelativeToFixed = new JacksonRelativeToFixed(relativeToFixed); + + assertThat(jacksonRelativeToFixed.date().day()).isEqualTo(new JacksonFixed(firstJanuary).day()); + assertThat(jacksonRelativeToFixed.weekday()).isEqualTo(DayOfWeek.MONDAY); + assertThat(jacksonRelativeToFixed.when()).isEqualTo(Relation.AFTER); + assertThat(jacksonRelativeToFixed.cycle()).isEqualTo(Limited.YearCycle.EVEN_YEARS); + assertThat(jacksonRelativeToFixed.descriptionPropertiesKey()).isEqualTo("description"); + assertThat(jacksonRelativeToFixed.holidayType()).isEqualTo(de.focus_shift.jollyday.core.HolidayType.BANK_HOLIDAY); + assertThat(jacksonRelativeToFixed.validFrom()).isEqualTo(Year.of(2000)); + assertThat(jacksonRelativeToFixed.validTo()).isEqualTo(Year.of(2001)); + } + + @Test + void ensureToReturnNullOrDefaultValuesOnNotSetValues() { + + final Fixed firstJanuary = new Fixed(); + firstJanuary.setDay(1); + firstJanuary.setMonth(Month.JANUARY); + + final RelativeToFixed relativeToFixed = new RelativeToFixed(); + relativeToFixed.setDate(firstJanuary); + final JacksonRelativeToFixed jacksonRelativeToFixed = new JacksonRelativeToFixed(relativeToFixed); + + assertThat(jacksonRelativeToFixed.date().day()).isEqualTo(new JacksonFixed(firstJanuary).day()); + assertThat(jacksonRelativeToFixed.weekday()).isNull(); + assertThat(jacksonRelativeToFixed.when()).isNull(); + assertThat(jacksonRelativeToFixed.cycle()).isEqualTo(Limited.YearCycle.EVERY_YEAR); + assertThat(jacksonRelativeToFixed.descriptionPropertiesKey()).isNull(); + assertThat(jacksonRelativeToFixed.holidayType()).isEqualTo(de.focus_shift.jollyday.core.HolidayType.PUBLIC_HOLIDAY); + assertThat(jacksonRelativeToFixed.validFrom()).isNull(); + assertThat(jacksonRelativeToFixed.validTo()).isNull(); + } +} diff --git a/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonConfigurationTest.java b/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonConfigurationTest.java new file mode 100644 index 000000000..c6b31a5a2 --- /dev/null +++ b/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonConfigurationTest.java @@ -0,0 +1,36 @@ +package de.focus_shift.jollyday.jackson; + +import de.focus_shift.jollyday.jackson.mapping.Configuration; +import de.focus_shift.jollyday.jackson.mapping.Holidays; +import de.focus_shift.jollyday.jackson.mapping.Sources; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class JacksonConfigurationTest { + + @Test + void ensuresCorrectMapping() { + + final Configuration configuration = new Configuration(); + configuration.setDescription("description"); + configuration.setHierarchy("hierarchy"); + + final Configuration subConfiguration = new Configuration(); + subConfiguration.setHierarchy("subHierarchy"); + configuration.getSubConfigurations().add(subConfiguration); + + final Holidays holidays = new Holidays(); + configuration.setHolidays(holidays); + + final Sources sources = new Sources(); + configuration.setSources(sources); + + final JacksonConfiguration sut = new JacksonConfiguration(configuration); + assertThat(sut.holidays()).isNotNull(); + assertThat(sut.subConfigurations().findFirst()) + .hasValueSatisfying(subConf -> assertThat(subConf.hierarchy()).isEqualTo("subHierarchy")); + assertThat(sut.hierarchy()).isEqualTo("hierarchy"); + assertThat(sut.description()).isEqualTo("description"); + } +} diff --git a/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/test/JacksonXMLMapperTest.java b/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonXMLMapperTest.java similarity index 88% rename from jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/test/JacksonXMLMapperTest.java rename to jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonXMLMapperTest.java index a5ccd7109..2a1b5d1a1 100644 --- a/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/test/JacksonXMLMapperTest.java +++ b/jollyday-jackson/src/test/java/de/focus_shift/jollyday/jackson/JacksonXMLMapperTest.java @@ -1,6 +1,5 @@ -package de.focus_shift.jollyday.jackson.test; +package de.focus_shift.jollyday.jackson; -import de.focus_shift.jollyday.jackson.JacksonXMLMapper; import de.focus_shift.jollyday.jackson.mapping.Configuration; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; diff --git a/jollyday-jackson/src/test/java/module-info.java b/jollyday-jackson/src/test/java/module-info.java deleted file mode 100644 index 7fd71db94..000000000 --- a/jollyday-jackson/src/test/java/module-info.java +++ /dev/null @@ -1,13 +0,0 @@ -module de.focus_shift.jollyday.jackson.test { - - opens de.focus_shift.jollyday.jackson.test to - org.junit.platform.commons; - - requires com.fasterxml.jackson.databind; - requires com.fasterxml.jackson.dataformat.xml; - requires de.focus_shift.jollyday.core; - requires de.focus_shift.jollyday.jackson; - requires org.assertj.core; - requires org.junit.jupiter.api; - requires org.junit.jupiter.params; -}