/** * @param OutputInterface $output */ private function doRaffle(OutputInterface $output) { while ($prizes = $this->event->getPrizes()) { $prize = $this->event->popPrize($this->selectPrize($prizes, $output)); $winner = $this->getRandomAttendee($output, $prize); $prize->setWinner($winner); $this->dataHandler->saveWinner($this->event->getId(), $prize); $this->dataHandler->saveEvent($this->event); $this->tweetWinner($output, $prize); } }
/** * @see Command */ protected function execute(InputInterface $input, OutputInterface $output) { $dataHandler = $this->getApplication()->getContainer()->get('data_adapter'); $this->event = $dataHandler->getEvent($input->getArgument('event_id')); if (!$this->event->hasPrizes()) { throw new \Exception('This event has no prizes setted.'); } $output->writeln("<info>List of prizes:</info>"); foreach ($this->event->getPrizes() as $prize) { $output->writeln("<comment>{$prize->getSponsorName()} - {$prize->getPrizeTitle()}</comment>"); } }
public function testConvertToArrayAndJson() { $event = new Event('test'); $expected = array('event' => array('id' => (string) $event, 'attendees' => $event->getAttendees(true), 'prizes' => $event->getPrizes(true))); $this->assertEquals($expected, $event->toArray()); $this->assertEquals(json_encode($expected), $event->toJson()); }