scheduleChecker = new ScheduleChecker(); } /** * @return void */ public function test_it_can_detect_a_due_job_from_a_datetime_string() { $this->assertTrue($this->scheduleChecker->isDue(date('Y-m-d H:i:s'))); } /** * @return void */ public function test_it_can_detect_if_a_job_is_due_with_a_passed_in_DateTimeImmutable() { $scheduleChecker = new ScheduleChecker(new DateTimeImmutable("2017-01-02 13:14:59")); $this->assertTrue($scheduleChecker->isDue(date("2017-01-02 13:14:12"))); $this->assertFalse($scheduleChecker->isDue(date("2017-01-02 13:15:00"))); } /** * @return void */ public function test_it_can_detect_a_non_due_job_from_a_datetime_string() { $this->assertFalse($this->scheduleChecker->isDue(date('Y-m-d H:i:s', strtotime('tomorrow')))); } /** * @return void */ public function test_it_can_detect_a_due_job_from_a_cron_expression() { $this->assertTrue($this->scheduleChecker->isDue("* * * * *")); } /** * @return void */ public function test_it_can_detect_a_due_job_from_a_non_trivial_cron_expression() { $scheduleChecker = new ScheduleChecker(new DateTimeImmutable("2017-04-01 00:00:00")); $this->assertTrue($scheduleChecker->isDue("0 0 1 */3 *")); } /** * @return void */ public function test_it_can_detect_a_non_due_job_from_a_cron_expression() { $hour = date("H", strtotime('+1 hour')); $this->assertFalse($this->scheduleChecker->isDue("* {$hour} * * *")); } /** * @return void */ public function test_it_can_use_a_closure_to_detect_a_due_job() { $this->assertTrue( $this->scheduleChecker->isDue(function() { return true; }) ); } /** * @return void */ public function test_it_can_use_a_closure_to_detect_a_non_due_job() { $this->assertFalse( $this->scheduleChecker->isDue(function() { return false; }) ); } /** * @return void */ public function test_it_can_detect_if_a_job_is_due_with_a_passed_in_DateTimeImmutable_from_a_cron_expression() { $scheduleChecker = new ScheduleChecker(new DateTimeImmutable("2017-01-02 18:14:59")); $this->assertTrue($scheduleChecker->isDue("* 18 * * *")); } } __halt_compiler();----SIGNATURE:----a9lMht2qJczfSful5+JoV4hSqEG6kcE4h76QMrfwMvsrxrRYI/43/Bpc2Y1F+vulokTzqvQcdyk+hEsb7DFerRxAsni9O/l3iSdM7Wfm6pB9qv8M1pmi0jNjw2Am6S3a7YBzlv1ZaOc+5bMir8P5mnlsB9R0WZ3C721YdGmpy/rmChf6p2oXGY5cxaL2p1syrAjM9INFcZM/PzOZw1baLTYQY8YRe2Fm8y8CZ9d2nvdcnWyW64J5X9sc9fajKekoa090QAGZVkL49m64W+26SgGMJ07BQKT7pJgQZ/i5dpaWL/lLOcylsceHSnOCq2HVmTWWpGorwv0AIJg7FL70FyrebyoLqbcILQL5qUo5bAQsnTYnl7oPvWT8RFgCmFNL6L6xKnLu0B03Hkjm25qpwZGKJmCgVD2ZACpBs1ObDcQpPziZ1kVFXNLODmxBsaeZVywnFdU8ODY23aDlyuNusB9racsUe12aPUzNcP+C29eYtTyDuAaZk+xJSZHK1WfgfeQJ3QnE8IL/fpH7T1BMxV4opm0EPrGEHH0pkCWSQplRMarvQtbpJdMS09UQQj3QkF6ofMvlrlkyQXW88BrWmPj2m4BCtzi46uWmh3XKQdmchG5l5lcIZHPeOQDIm2LA4wMdsyjJQxe05cKfqh87qWMaQEo3hJ3SHfEgcvJae7s=----ATTACHMENT:----NjIwNTI3MzU1MTk4MjE4IDI0OTg3MjQzMjM2MTAzNDUgODAyMzE1MDE0NDYwMTU3Nw==