diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByDayRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByDayRuleTest.groovy new file mode 100644 index 000000000..9f8b50b00 --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByDayRuleTest.groovy @@ -0,0 +1,27 @@ +package net.fortuna.ical4j.transform.recurrence + +import net.fortuna.ical4j.model.Date +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.WeekDay +import net.fortuna.ical4j.model.WeekDayList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class ByDayRuleTest extends Specification { + + def 'verify transformations by day'() { + given: 'a BYDAY rule' + ByDayRule rule = [new WeekDayList(rulePart), filterType] + + and: 'a list of dates' + DateList dateList = [Value.DATE] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + rulePart | filterType | dates | expectedResult + WeekDay.FR | ByDayRule.FilterType.Weekly | [new Date('20150103')] | [new Date('20150102')] + } +} diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByHourRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByHourRuleTest.groovy new file mode 100644 index 000000000..2adba81c2 --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByHourRuleTest.groovy @@ -0,0 +1,27 @@ +package net.fortuna.ical4j.transform.recurrence + + +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.DateTime +import net.fortuna.ical4j.model.NumberList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class ByHourRuleTest extends Specification { + + def 'verify transformations by day'() { + given: 'a BYHOUR rule' + ByHourRule rule = [new NumberList(rulePart)] + + and: 'a list of dates' + DateList dateList = [Value.DATE_TIME] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + rulePart | dates | expectedResult + '1' | [new DateTime('20150103T000000Z')] | [new DateTime('20150103T010000Z')] + } +} diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMinuteRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMinuteRuleTest.groovy new file mode 100644 index 000000000..b85b54bdd --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMinuteRuleTest.groovy @@ -0,0 +1,27 @@ +package net.fortuna.ical4j.transform.recurrence + + +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.DateTime +import net.fortuna.ical4j.model.NumberList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class ByMinuteRuleTest extends Specification { + + def 'verify transformations by day'() { + given: 'a BYMINUTE rule' + ByMinuteRule rule = [new NumberList(rulePart)] + + and: 'a list of dates' + DateList dateList = [Value.DATE_TIME] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + rulePart | dates | expectedResult + '1' | [new DateTime('20150103T000000Z')] | [new DateTime('20150103T000100Z')] + } +} diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMonthDayRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMonthDayRuleTest.groovy new file mode 100644 index 000000000..98c343040 --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMonthDayRuleTest.groovy @@ -0,0 +1,26 @@ +package net.fortuna.ical4j.transform.recurrence + +import net.fortuna.ical4j.model.Date +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.NumberList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class ByMonthDayRuleTest extends Specification { + + def 'verify transformations by day'() { + given: 'a BYMONTHDAY rule' + ByMonthDayRule rule = [new NumberList(rulePart)] + + and: 'a list of dates' + DateList dateList = [Value.DATE] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + rulePart | dates | expectedResult + '1' | [new Date('20150103')] | [new Date('20150101')] + } +} diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMonthRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMonthRuleTest.groovy new file mode 100644 index 000000000..6840e2b1a --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByMonthRuleTest.groovy @@ -0,0 +1,26 @@ +package net.fortuna.ical4j.transform.recurrence + +import net.fortuna.ical4j.model.Date +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.NumberList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class ByMonthRuleTest extends Specification { + + def 'verify transformations by month'() { + given: 'a bymonth rule' + ByMonthRule rule = [new NumberList(byMonthPart), Optional.empty()] + + and: 'a list of dates' + DateList dateList = [Value.DATE] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + byMonthPart | dates | expectedResult + '1,2' | [new Date('20150103')] | [new Date('20150103'), new Date('20150203')] + } +} diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/BySecondRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/BySecondRuleTest.groovy new file mode 100644 index 000000000..d9a99da0b --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/BySecondRuleTest.groovy @@ -0,0 +1,27 @@ +package net.fortuna.ical4j.transform.recurrence + + +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.DateTime +import net.fortuna.ical4j.model.NumberList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class BySecondRuleTest extends Specification { + + def 'verify transformations by day'() { + given: 'a BYSECOND rule' + BySecondRule rule = [new NumberList(rulePart)] + + and: 'a list of dates' + DateList dateList = [Value.DATE_TIME] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + rulePart | dates | expectedResult + '1' | [new DateTime('20150103T000000Z')] | [new DateTime('20150103T000001Z')] + } +} diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/BySetPosRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/BySetPosRuleTest.groovy new file mode 100644 index 000000000..9d7633720 --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/BySetPosRuleTest.groovy @@ -0,0 +1,26 @@ +package net.fortuna.ical4j.transform.recurrence + +import net.fortuna.ical4j.model.Date +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.NumberList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class BySetPosRuleTest extends Specification { + + def 'verify transformations by day'() { + given: 'a BYSETPOS rule' + BySetPosRule rule = [new NumberList(rulePart)] + + and: 'a list of dates' + DateList dateList = [Value.DATE] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + rulePart | dates | expectedResult + '1' | [new Date('20150103')] | [new Date('20150103')] + } +} diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByWeekNoRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByWeekNoRuleTest.groovy index c7aadb5cd..5fdeef7ee 100644 --- a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByWeekNoRuleTest.groovy +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByWeekNoRuleTest.groovy @@ -9,7 +9,7 @@ import spock.lang.Specification class ByWeekNoRuleTest extends Specification { def 'verify transformations by week number'() { - given: 'a byweekno rule' + given: 'a BYWEEKNO rule' ByWeekNoRule rule = [new NumberList(byWeekNoPart)] and: 'a list of dates' diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByYearDayRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByYearDayRuleTest.groovy new file mode 100644 index 000000000..cf234c548 --- /dev/null +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByYearDayRuleTest.groovy @@ -0,0 +1,26 @@ +package net.fortuna.ical4j.transform.recurrence + +import net.fortuna.ical4j.model.Date +import net.fortuna.ical4j.model.DateList +import net.fortuna.ical4j.model.NumberList +import net.fortuna.ical4j.model.parameter.Value +import spock.lang.Specification + +class ByYearDayRuleTest extends Specification { + + def 'verify transformations by day'() { + given: 'a BYYEARDAY rule' + ByYearDayRule rule = [new NumberList(rulePart)] + + and: 'a list of dates' + DateList dateList = [Value.DATE] + dateList.addAll(dates) + + expect: 'the rule transforms the dates correctly' + rule.transform(dateList) == expectedResult + + where: + rulePart | dates | expectedResult + '1' | [new Date('20150103')] | [new Date('20150101')] + } +}