public function testPreAndPostCommandHandlersAreRun() { $preLogger = new Logger('sdfs', array(new TestHandler())); $this->dispatcher->addPreCommandHandler(function ($command) use($preLogger) { $preLogger->info('pre'); }); $postLogger = new Logger('fghhgf', array(new TestHandler())); $this->dispatcher->addPostCommandHandler(function ($command) use($postLogger) { $postLogger->info('post'); }); $command = $this->createCommand(); $this->dispatcher->handleCommands(array($command)); $records = $preLogger->popHandler()->getRecords(); $this->assertEquals('pre', $records[0]['message']); $records = $postLogger->popHandler()->getRecords(); $this->assertEquals('post', $records[0]['message']); }
} } } private function getRandomKenoNumber() { return rand(1, 70); } public function preLog(LoggerInterface $logger) { $logger->info(sprintf('Will generate %s keno numbers...', $this->numberAmount)); } public function postLog(LoggerInterface $logger) { sort($this->kenoNumbers); $logger->info(sprintf('...generated %s numbers: %s.', ucwords(self::NAME), implode(', ', $this->kenoNumbers))); } } $logger = new Logger('test', array(new TestHandler())); $dispatcher = new Dispatcher(); $dispatcher->addPreCommandHandler(function (CommandInterface $command) use($logger) { $command->preLog($logger); }); $dispatcher->addPostCommandHandler(function (CommandInterface $command) use($logger) { $command->postLog($logger); }); $commands = array(GenerateLotteryNumbersCommand::create(array(7)), GenerateKenoNumbersCommand::create(array(10))); $dispatcher->handleCommands($commands); $records = $logger->popHandler()->getRecords(); foreach ($records as $record) { print_r($record['message'] . "\n"); }