Differential D9637 Diff 23125 src/applications/chronicle/storage/__tests__/ChronicleTriggerNextEpochTestCase.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/chronicle/storage/__tests__/ChronicleTriggerNextEpochTestCase.php
- This file was added.
<?php | |||||
final class ChronicleTriggerNextEpochTestCase extends PhabricatorTestCase { | |||||
public function testUnsetEpoch() { | |||||
$trigger = id(new ChronicleTrigger()) | |||||
->makeEphemeral(); | |||||
$this->assertEqual( | |||||
ChronicleTrigger::EPOCH_NEVER, | |||||
$trigger->calculateNextEpoch()); | |||||
} | |||||
public function testNeverEpoch() { | |||||
$trigger = id(new ChronicleTrigger()) | |||||
->setEpochType(ChronicleTrigger::TYPE_NEVER) | |||||
->makeEphemeral(); | |||||
$this->assertEqual( | |||||
ChronicleTrigger::EPOCH_NEVER, | |||||
$trigger->calculateNextEpoch()); | |||||
} | |||||
public function testOnceEpoch() { | |||||
$now = time(); | |||||
$trigger = id(new ChronicleTrigger()) | |||||
->setEpochType(ChronicleTrigger::TYPE_ONCE) | |||||
->setEpochConfigSetting('epoch', $now) | |||||
->makeEphemeral(); | |||||
$this->assertEqual( | |||||
$now, | |||||
$trigger->calculateNextEpoch($now - 1)); | |||||
$this->assertEqual( | |||||
ChronicleTrigger::EPOCH_NEVER, | |||||
$trigger->calculateNextEpoch($now)); | |||||
$this->assertEqual( | |||||
ChronicleTrigger::EPOCH_NEVER, | |||||
$trigger->calculateNextEpoch($now + 1)); | |||||
} | |||||
public function testDailyEpoch() { | |||||
$now = 1401271590; | |||||
$next_monday = 1401638400; | |||||
$next_wednesday = 1401811200; | |||||
$next_thursday = 1401292800; | |||||
$next_sunday = 1401552000; | |||||
$trigger = id(new ChronicleTrigger()) | |||||
->setEpochType(ChronicleTrigger::TYPE_DAILY) | |||||
->setEpochConfigSetting('days', array( | |||||
ChronicleTrigger::DAY_MONDAY, | |||||
ChronicleTrigger::DAY_WEDNESDAY, | |||||
ChronicleTrigger::DAY_THURSDAY, | |||||
ChronicleTrigger::DAY_SUNDAY)) | |||||
->setEpochConfigSetting('times', array(2)) // 2am | |||||
->makeEphemeral(); | |||||
$this->assertEqual( | |||||
$next_thursday, | |||||
$trigger->calculateNextEpoch($now)); | |||||
$this->assertEqual( | |||||
$next_thursday, | |||||
$trigger->calculateNextEpoch($next_thursday - 1)); | |||||
$this->assertEqual( | |||||
$next_sunday, | |||||
$trigger->calculateNextEpoch($next_thursday)); | |||||
$this->assertEqual( | |||||
$next_sunday, | |||||
$trigger->calculateNextEpoch($next_thursday + 1)); | |||||
$this->assertEqual( | |||||
$next_sunday, | |||||
$trigger->calculateNextEpoch($next_sunday - 1)); | |||||
$this->assertEqual( | |||||
$next_monday, | |||||
$trigger->calculateNextEpoch($next_sunday)); | |||||
$this->assertEqual( | |||||
$next_monday, | |||||
$trigger->calculateNextEpoch($next_sunday + 1)); | |||||
$this->assertEqual( | |||||
$next_monday, | |||||
$trigger->calculateNextEpoch($next_monday - 1)); | |||||
$this->assertEqual( | |||||
$next_wednesday, | |||||
$trigger->calculateNextEpoch($next_monday)); | |||||
$this->assertEqual( | |||||
$next_wednesday, | |||||
$trigger->calculateNextEpoch($next_monday + 1)); | |||||
$this->assertEqual( | |||||
$next_wednesday, | |||||
$trigger->calculateNextEpoch($next_wednesday - 1)); | |||||
} | |||||
} |