/**
*
*/
package org.ryu22e.nico2cal.controller;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import java.text.ParseException;
import java.util.Date;
import org.joda.time.DateTime;
import org.junit.Test;
/**
* @author ryu22e
*
*/
public final class StartWeekTest {
/**
* @throws Exception
*/
@Test
public void startWeekからDateに変換する() throws Exception {
DateTime now = new DateTime();
// 1週間前のDateオブジェクトを取得できる。
Date result1 = StartWeek.WEEK_1.toDate();
assertThat(result1, is(notNullValue()));
DateTime expected1 = now.minusWeeks(1);
DateTime week1 = new DateTime(result1);
assertThat(week1.getYear(), is(expected1.getYear()));
assertThat(week1.getMonthOfYear(), is(expected1.getMonthOfYear()));
assertThat(week1.getDayOfMonth(), is(expected1.getDayOfMonth()));
// 2週間前のDateオブジェクトを取得できる。
Date result2 = StartWeek.WEEK_2.toDate();
assertThat(result2, is(notNullValue()));
DateTime expected2 = now.minusWeeks(2);
DateTime week2 = new DateTime(result2);
assertThat(week2.getYear(), is(expected2.getYear()));
assertThat(week2.getMonthOfYear(), is(expected2.getMonthOfYear()));
assertThat(week2.getDayOfMonth(), is(expected2.getDayOfMonth()));
// 3週間前のDateオブジェクトを取得できる。
Date result3 = StartWeek.WEEK_3.toDate();
assertThat(result3, is(notNullValue()));
DateTime expected3 = now.minusWeeks(3);
DateTime week3 = new DateTime(result3);
assertThat(week3.getYear(), is(expected3.getYear()));
assertThat(week3.getMonthOfYear(), is(expected3.getMonthOfYear()));
assertThat(week3.getDayOfMonth(), is(expected3.getDayOfMonth()));
// 4週間前のDateオブジェクトを取得できる。
Date result4 = StartWeek.WEEK_4.toDate();
assertThat(result4, is(notNullValue()));
DateTime expected4 = now.minusWeeks(4);
DateTime week4 = new DateTime(result4);
assertThat(week4.getYear(), is(expected4.getYear()));
assertThat(week4.getMonthOfYear(), is(expected4.getMonthOfYear()));
assertThat(week4.getDayOfMonth(), is(expected4.getDayOfMonth()));
}
/**
* @throws Exception
*/
@Test
public void intからStartWeekに変換する() throws Exception {
assertThat(StartWeek.parse(1), is(StartWeek.WEEK_1));
assertThat(StartWeek.parse(2), is(StartWeek.WEEK_2));
assertThat(StartWeek.parse(3), is(StartWeek.WEEK_3));
assertThat(StartWeek.parse(4), is(StartWeek.WEEK_4));
}
/**
* @throws Exception
*/
@Test(expected = ParseException.class)
public void intからStartWeekに変換する_intが不正な値() throws Exception {
StartWeek.parse(0);
}
}