public function testDownload() { $max_tries = 3; $client = new FakeClient(); $client->tries = $max_tries; $downloader = new PageDownloader(); $downloader->setClient($client); $downloader->setWaitTime(0); try { $downloader->download('test', $max_tries); $this->fails(); } catch (DownloadException $e) { $this->assertEquals($max_tries . ' attempts failed to download this page', $e->getMessage()); } $response_2 = $downloader->download('test', $max_tries + 1); $this->assertEquals('foo', $response_2); }
private function createCrawler(Body $body) { $response = \Mockery::mock('\\GuzzleHttp\\Message\\FutureResponse'); $response->shouldReceive('getBody')->andReturn($body)->shouldReceive('getStatusCode')->andReturn(200); $client = \Mockery::mock('\\GuzzleHttp\\Client'); $client->shouldReceive('get')->andReturn($response); $downloader = new PageDownloader(); $downloader->setClient($client); $manager = new QueueManager(new ArrayQueue(), new ArrayStore()); $manager->addValidator(new FuckThatLink()); $crawler = new DomainCrawler($manager, new LinkFinder()); $crawler->setDownloader($downloader); return $crawler; }