public function testUndoingCommand() { $cmd2 = $this->createUndoableCommand(); $cmd2->expects($this->exactly(1))->method('undo'); $this->dispatcher->handleCommands(array($cmd2)); $this->dispatcher->undo($cmd2); }
} } } 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"); }