/** * @param string $name * @param array $friends * @param array $friendsOfFriends * @param array $suggestedFriends * * @dataProvider personProvider */ public function testCommand($name, $friends, $friendsOfFriends, $suggestedFriends) { $choices = [$friends, $friendsOfFriends, $suggestedFriends]; $dialogHelper = $this->getMock('Symfony\\Component\\Console\\Helper\\DialogHelper', ['select']); $this->friendCommand->getHelperSet()->set($dialogHelper, 'dialog'); foreach ($choices as $index => $results) { $dialogHelper->expects($this->at(0))->method('select')->willReturn($index); $dialogHelper->expects($this->at(1))->method('select')->willReturn(3); $this->commandTester->execute(['command' => $this->friendCommand->getName(), 'person' => $name]); $display = $this->commandTester->getDisplay(); foreach ($results as $friend) { $this->assertContains($friend, $display); } } }
#!/usr/bin/env php <?php require __DIR__ . '/vendor/autoload.php'; use Krlove\Console\FriendCommand; use Krlove\Console\InitCommand; use Krlove\Repository\FriendRepository; use Krlove\Storage\Connection; use Symfony\Component\Console\Application; $config = (require __DIR__ . '/app/config/config.php'); $connection = new Connection($config['host'], $config['port'], $config['username'], $config['password']); $initCommand = new InitCommand(); $initCommand->setConnection($connection); $friendRepository = new FriendRepository($connection); $friendCommand = new FriendCommand(); $friendCommand->setFriendRepository($friendRepository); $application = new Application(); $application->add($initCommand); $application->add($friendCommand); $application->run();