@@ -0,0 +1,2513 @@
+package com.cronutils;%0D%0A%0D%0Aimport java.time.LocalDateTime;%0D%0Aimport java.time.ZoneId;%0D%0Aimport java.time.ZonedDateTime;%0D%0A%0D%0Aimport org.junit.Assert;%0D%0Aimport org.junit.Before;%0D%0Aimport org.junit.Test;%0D%0A%0D%0Aimport com.cronutils.model.CronType;%0D%0Aimport com.cronutils.model.definition.CronDefinitionBuilder;%0D%0Aimport com.cronutils.model.time.ExecutionTime;%0D%0Aimport com.cronutils.parser.CronParser;%0D%0A%0D%0Apublic class Issue143Test %7B%0D%0A%0D%0A    private CronParser    parser;%0D%0A    private ZonedDateTime currentDateTime;%0D%0A    %0D%0A    @Before%0D%0A    public void initialize() %7B%0D%0A        // Make sure that current date is before Dec-31%0D%0A        currentDateTime = ZonedDateTime.of(LocalDateTime.of(2016, 12, 20, 12, 00), %0D%0A                                           ZoneId.systemDefault());%0D%0A%0D%0A        parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));%0D%0A    %7D%0D%0A    %0D%0A    @Test%0D%0A    public void testCase1() %7B%0D%0A        ExecutionTime et = ExecutionTime.forCron(parser.parse(%220 0 12 31 12 ? *%22));%0D%0A        ZonedDateTime actual = et.lastExecution(currentDateTime);%0D%0A        %0D%0A        ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2015, 12, 31, 12, 00), %0D%0A                                                  ZoneId.systemDefault());%0D%0A        Assert.assertEquals(expected, actual);%0D%0A    %7D%0D%0A    %0D%0A    @Test%0D%0A    public void testCase2() %7B%0D%0A        ExecutionTime et = ExecutionTime.forCron(parser.parse(%220 0 12 ? 12 SAT#5 *%22));%0D%0A        ZonedDateTime actual = et.lastExecution(currentDateTime);%0D%0A        %0D%0A        ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2012, 12, 29, 12, 00), %0D%0A                ZoneId.systemDefault());%0D%0A        Assert.assertEquals(expected, actual);%0D%0A    %7D%0D%0A    %0D%0A    @Test%0D%0A    public void testCase3() %7B%0D%0A        ExecutionTime et = ExecutionTime.forCron(parser.parse(%220 0 12 31 1/1 ? *%22));%0D%0A        ZonedDateTime actual = et.lastExecution(currentDateTime);%0D%0A        %0D%0A        ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2015, 12, 31, 12, 00), %0D%0A                ZoneId.systemDefault());%0D%0A        Assert.assertEquals(expected, actual);%0D%0A    %7D%0D%0A    %0D%0A    @Test%0D%0A    public void testCase4() %7B%0D%0A        ExecutionTime et = ExecutionTime.forCron(parser.parse(%220 0 12 ? 1/1 SAT#5 *%22));%0D%0A        ZonedDateTime actual = et.lastExecution(currentDateTime);%0D%0A        %0D%0A        ZonedDateTime expected = ZonedDateTime.of(LocalDateTime.of(2016, 10, 29, 12, 00), %0D%0A                ZoneId.systemDefault());%0D%0A        Assert.assertEquals(expected, actual);%0D%0A    %7D%0D%0A    %0D%0A%7D%0D%0A

Add Test Case for Issue#143