コード例 #1
0
ファイル: CronTest.php プロジェクト: hilltool/cron
 /**
  * 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);
 }