/** * Execute the actual command. * * @param InputInterface $input * @param OutputInterface $output */ protected function execute(InputInterface $input, OutputInterface $output) { // timeout should be much lower in production, high due to latency / bandwidth via ADSL. $httpFetch = new HttpFetch(new Client(['timeout' => 5]), $output); $products = $httpFetch->fetchProducts($this->validateInputUrl($input, $output)); $output->write(json_encode($products)); }
/** * Test adding console output */ public function testAttachConsoleOutput() { // setup our url and mock guzzle $expectedUrl = 'http://www.google.com/this-is-a-test'; $mockHandler = new MockHandler([new Response(200)]); $handler = HandlerStack::create($mockHandler); $client = new Client(['handler' => $handler]); $output = $this->getMock('Symfony\\Component\\Console\\Output\\OutputInterface'); $output->expects($this->once())->method('isVerbose')->willReturn(true); $output->expects($this->once())->method('writeln')->with(" > <info>Fetching {$expectedUrl}</info>"); $sut = new HttpFetch($client); $sut->attachConsoleOutput($output); $url = $sut->fetchUrl($expectedUrl); }