public function testGetWeek()
 {
     $factory = new Calendar();
     $week = $factory->getWeek(new \DateTime('2012-W01'));
     $this->assertInstanceOf('CalendR\\Period\\Week', $week);
     $week = $factory->getWeek(2012, 1);
     $this->assertInstanceOf('CalendR\\Period\\Week', $week);
 }
 public function testFactoryTransmitDefaultWeekday()
 {
     $calendar = new Calendar();
     $calendar->setFirstWeekday(Day::SUNDAY);
     $this->assertSame(Day::SUNDAY, $calendar->getYear(2013)->getFirstWeekday());
     $this->assertSame(Day::SUNDAY, $calendar->getMonth(2013, 1)->getFirstWeekday());
     $this->assertSame(Day::SUNDAY, $calendar->getWeek(2013, 1)->getFirstWeekday());
     $this->assertSame(Day::SUNDAY, $calendar->getDay(2013, 1, 1)->getFirstWeekday());
 }
 public function testCalendarSetOption()
 {
     $calendar = new Calendar();
     $calendar->setFactory(new Factory(array('week_class' => 'CalendR\\Test\\Fixtures\\Period\\Week')));
     $this->assertInstanceOf('CalendR\\Test\\Fixtures\\Period\\Week', $calendar->getWeek(new \DateTime('2012W01')));
 }
 /**
  * @dataProvider weekAndWeekdayProvider
  */
 public function testGetWeekWithWeekdayConfiguration($year, $week, $weekday, $day)
 {
     $calendar = new Calendar();
     $calendar->getFactory()->setFirstWeekday($weekday);
     $week = $calendar->getWeek($year, $week);
     $this->assertEquals($weekday, $week->format('w'));
     $this->assertSame($day, $week->format('Y-m-d'));
 }