setHour(-1); } catch (Exception $e) { return; } $this->fail('Expected exception not raised'); } /** * Tests invalid call to setHour on Daily */ public function testSetHourScheduledTimeDailyOver24() { try { $dailySchedule = \Piwik\ScheduledTime::factory('daily'); $dailySchedule->setHour(25); } catch (Exception $e) { return; } $this->fail('Expected exception not raised'); } /** * Tests forbidden call to setDay on Daily */ public function testSetDayScheduledTimeDaily() { try { $dailySchedule = \Piwik\ScheduledTime::factory('daily'); $dailySchedule->setDay(1); } catch (Exception $e) { return; } $this->fail('Expected exception not raised'); } /** * Tests getRescheduledTime on Daily with unspecified hour */ public function testGetRescheduledTimeDailyUnspecifiedHour() { /* * Test 1 * * Context : * - getRescheduledTime called Friday January 1 1971 09:10:00 UTC * - setHour is not called, defaulting to midnight * * Expected : * getRescheduledTime returns Saturday January 2 1971 00:00:00 UTC */ $mock = $this->getDailyMock(self::$_JANUARY_01_1971_09_10_00); $this->assertEquals(self::$_JANUARY_02_1971_00_00_00, $mock->getRescheduledTime()); } public function test_setTimezone_ShouldConvertRescheduledTime() { $oneHourInSeconds = 3600; $mock = $this->getDailyMock(self::$_JANUARY_01_1971_09_10_00); $timeUTC = $mock->getRescheduledTime(); $this->assertEquals(self::$_JANUARY_02_1971_00_00_00, $timeUTC); $mock->setTimezone('Pacific/Auckland'); $timeAuckland = $mock->getRescheduledTime(); $this->assertEquals(-13 * $oneHourInSeconds, $timeAuckland - $timeUTC); $mock->setTimezone('America/Los_Angeles'); $timeLosAngeles = $mock->getRescheduledTime(); $this->assertEquals(8 * $oneHourInSeconds, $timeLosAngeles - $timeUTC); } /** * Tests getRescheduledTime on Daily with specified hour */ public function testGetRescheduledTimeDailySpecifiedHour() { /* * Test 1 * * Context : * - getRescheduledTime called Friday January 1 1971 09:00:00 UTC * - setHour is set to 9 * * Expected : * getRescheduledTime returns Saturday January 2 1971 09:00:00 UTC */ $mock = $this->getDailyMock(self::$_JANUARY_01_1971_09_00_00); $mock->setHour(9); $this->assertEquals(self::$_JANUARY_02_1971_09_00_00, $mock->getRescheduledTime()); /* * Test 2 * * Context : * - getRescheduledTime called Friday January 1 1971 12:10:00 UTC * - setHour is set to 9 * * Expected : * getRescheduledTime returns Saturday January 2 1971 09:00:00 UTC */ $mock = $this->getDailyMock(self::$_JANUARY_01_1971_12_10_00); $mock->setHour(9); $this->assertEquals(self::$_JANUARY_02_1971_09_00_00, $mock->getRescheduledTime()); /* * Test 3 * * Context : * - getRescheduledTime called Friday January 1 1971 12:10:00 UTC * - setHour is set to 0 * * Expected : * getRescheduledTime returns Saturday January 2 1971 00:00:00 UTC */ $mock = $this->getDailyMock(self::$_JANUARY_01_1971_12_10_00); $mock->setHour(0); $this->assertEquals(self::$_JANUARY_02_1971_00_00_00, $mock->getRescheduledTime()); } /** * @param $currentTime * @return \Piwik\ScheduledTime\Daily */ private function getDailyMock($currentTime) { $mock = $this->getMock('\Piwik\ScheduledTime\Daily', array('getTime')); $mock->expects($this->any()) ->method('getTime') ->will($this->returnValue($currentTime)); return $mock; } }