/**
* Copyright 2011 Sven Diedrichsen
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package de.jollyday.tests.parsers;
import java.util.HashSet;
import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
import de.jollyday.Holiday;
import de.jollyday.config.FixedWeekdayBetweenFixed;
import de.jollyday.config.Holidays;
import de.jollyday.config.Month;
import de.jollyday.config.Weekday;
import de.jollyday.parser.impl.FixedWeekdayBetweenFixedParser;
import de.jollyday.util.CalendarUtil;
/**
* @author svdi1de
*
*/
public class FixedWeekdayBetweenFixedParserTest extends FixedParserTest {
private FixedWeekdayBetweenFixedParser parser = new FixedWeekdayBetweenFixedParser();
private CalendarUtil calendarUtil = new CalendarUtil();
@Test
public void testEmpty() {
Set<Holiday> holidays = new HashSet<>();
Holidays config = new Holidays();
parser.parse(2010, holidays, config);
Assert.assertTrue("Expected to be empty.", holidays.isEmpty());
}
@Test
public void testInvalid() {
Set<Holiday> holidays = new HashSet<>();
Holidays config = new Holidays();
FixedWeekdayBetweenFixed e = new FixedWeekdayBetweenFixed();
e.setValidTo(2009);
config.getFixedWeekdayBetweenFixed().add(e);
parser.parse(2010, holidays, config);
Assert.assertTrue("Expected to be empty.", holidays.isEmpty());
}
@Test
public void testWednesday() {
Set<Holiday> holidays = new HashSet<>();
Holidays config = new Holidays();
FixedWeekdayBetweenFixed e = new FixedWeekdayBetweenFixed();
e.setFrom(createFixed(17, Month.JANUARY));
e.setTo(createFixed(21, Month.JANUARY));
e.setWeekday(Weekday.WEDNESDAY);
config.getFixedWeekdayBetweenFixed().add(e);
parser.parse(2011, holidays, config);
Assert.assertEquals("Wrong number of results.", 1, holidays.size());
Assert.assertEquals("Wrong date.", calendarUtil.create(2011, 1, 19), holidays.iterator().next().getDate());
}
}