package com.intrbiz.bergamot.scheduler.timeperiod;
import org.junit.Test;
import com.intrbiz.bergamot.timerange.TimeRangeParser;
import static org.hamcrest.Matchers.*;
import static org.hamcrest.MatcherAssert.*;
public class TestTimeRangeParser
{
@Test
public void testParseHourRange()
{
assertThat(TimeRangeParser.parseTimeRange("00:00-24:00").toString(), is(equalTo("00:00-24:00")));
assertThat(TimeRangeParser.parseTimeRange("00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("00:00-24:00, 01:30-02:30, 03:00-03:30")));
}
@Test
public void testParseDayOfWeekRange()
{
assertThat(TimeRangeParser.parseTimeRange("monday 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("monday 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("tuesday 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("tuesday 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("wednesday 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("wednesday 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("thursday 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("thursday 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("friday 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("friday 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("saturday 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("saturday 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("sunday 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("sunday 00:00-24:00, 01:30-02:30, 03:00-03:30")));
}
@Test
public void testParseDayOfMonthRange()
{
assertThat(TimeRangeParser.parseTimeRange("day 2 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("day 2 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("day -2 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("day -2 00:00-24:00, 01:30-02:30, 03:00-03:30")));
}
@Test
public void testParseDayOfMonthRangeWithMonth()
{
assertThat(TimeRangeParser.parseTimeRange("january 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("january 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("february -1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("february -1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("march 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("march 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("april 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("april 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("may 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("may 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("june 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("june 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("july 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("july 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("august 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("august 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("september 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("september 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("october 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("october 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("november 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("november 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("december 1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("december 1 00:00-24:00, 01:30-02:30, 03:00-03:30")));
}
@Test
public void testParseDateRange()
{
assertThat(TimeRangeParser.parseTimeRange("2014-04-20 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("2014-04-20 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("2014-04-1 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("2014-04-01 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("2014-4-9 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("2014-04-09 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("2014-4-10 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("2014-04-10 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("2014-10-10 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("2014-10-10 00:00-24:00, 01:30-02:30, 03:00-03:30")));
}
@Test
public void testParseDayOfWeekInMonthRange()
{
assertThat(TimeRangeParser.parseTimeRange("monday 1 may 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("monday 1 may 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("monday -1 may 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("monday -1 may 00:00-24:00, 01:30-02:30, 03:00-03:30")));
assertThat(TimeRangeParser.parseTimeRange("friday 2 december 00:00-24:00, 01:30-02:30, 03:00-03:30").toString(), is(equalTo("friday 2 december 00:00-24:00, 01:30-02:30, 03:00-03:30")));
}
}