/** * Test final result given first partial results * * @dataProvider dataExecute */ public function testExecute($firstStatusCode, $expectedResult) { /** * @var ClientInterface|ObjectProphecy $client */ $client = $this->prophesize('Visithor\\Client\\Interfaces\\ClientInterface'); $client->getResponseHTTPCode(Argument::any())->willReturn(200); $client->buildClient(Argument::any())->willReturn(Argument::any()); $client->destroyClient(Argument::any())->willReturn(Argument::any()); $urlChain = new UrlChain(); $urlChain->addUrl(new Url('', $firstStatusCode, []))->addUrl(new Url('', [200], []))->addUrl(new Url('', [200], [])); $executor = new Executor($client->reveal()); $result = $executor->execute($urlChain, $this->prophesize('Visithor\\Renderer\\Interfaces\\RendererInterface')->reveal(), $this->prophesize('Symfony\\Component\\Console\\Output\\OutputInterface')->reveal()); $this->assertEquals($expectedResult, $result); }