/** * Test method for Laravals build in logging value * * @covers \Liebig\Cron\Cron::setLaravelLogging * @covers \Liebig\Cron\Cron::isLaravelLogging */ public function testLaravelLogging() { $this->assertEquals(true, Cron::isLaravelLogging()); $this->assertEquals(null, Cron::getLogger()); $i = 0; $tester = $this; Log::listen(function ($level, $message) use(&$i, $tester) { switch ($i) { case 0: $tester->assertEquals('notice', $level); $tester->assertEquals('Cron run with manager id 1 has no previous managers.', $message); break; case 1: $tester->assertEquals('info', $level); $tester->assertEquals('The cron run with the manager id 1 was finished without errors.', $message); break; case 2: $tester->assertEquals('error', $level); $tester->assertEquals('Job with the name test1 was run with errors.', $message); break; case 3: $tester->assertEquals('error', $level); break; case 4: $tester->assertEquals('error', $level); $tester->assertEquals('The cron run with the manager id 2 was finished with 1 errors.', $message); break; default: throw new \UnexpectedValueException('Log listener is called to often - test case failed'); } $i++; }); Cron::run(); Cron::add('test1', '* * * * *', function () { return 'test error'; }); Cron::run(); Cron::setLaravelLogging(false); Cron::run(); // Check if the Log is called 5 times $this->assertEquals(5, $i); }