/** * @covers \Amara\OneHydra\Http\HttpResponse::getBody * @covers \Amara\OneHydra\Http\HttpResponse::setBody */ public function testSetAndGetBody() { $httpResponse = new HttpResponse(); $this->assertNull($httpResponse->getBody()); $httpResponse->setBody('test'); $this->assertEquals('test', $httpResponse->getBody()); }
public function testGetPageWithMockedTransport() { $isUat = false; $authToken = 'foo'; $pageUrl = '/foo/bar'; $body = '{"Page":{ "HeadContent":{ "MetaDescription":"A meta description", "MetaKeywords":"Some meta keywords", "Title":"A title" }, "HeadInstructions":{ "CanonicalUrl":"https:\\/\\/www.example.com\\/canonical", "MetaRobots":"INDEX, FOLLOW" }, "Links":[ { "Key":"Main Links", "Value":[ { "AnchorText":"Main link 1", "DestinationUrl":"https:\\/\\/www.example.com\\/link-1", "Order":1 }, { "AnchorText":"Main link 2", "DestinationUrl":"https:\\/\\/www.example.com\\/link-2", "Order":2 } ] } ], "PageContent":{ "Abstract":"Page content abstract", "General":[{ "Key":"Custom Field 1", "Value":"Custom Value 1" }], "H1":"Page content H1" }, "Products": [ {"ProductCode":"200"}, {"ProductCode":"300"}, {"ProductCode":"400"} ], "ServerSide":{ "PageOrigin":"Existing", "PreexistingUrl":null, "RedirectCode":200, "RedirectTargetUrl":null } }}'; $responseMock = new HttpResponse(); $responseMock->setBody($body); $transportMock = $this->prophesize(TransportInterface::class); $transportMock->execute(Argument::that(function (HttpRequestInterface $httpRequest) use($authToken, $pageUrl) { return 'https://seoapi.onehydra.com/v2/page' === $httpRequest->getUrl() && ['url' => $pageUrl] == $httpRequest->getParams() && ['Authorization' => $authToken] == $httpRequest->getHeaders(); }))->willReturn($responseMock); $httpRequestBuilder = new HttpRequestBuilder($isUat, $authToken); $resultBuilderEngine = new ResultBuilderEngine(); $resultBuilderEngine->addBuilder(new PageResultBuilder()); $resultBuilderEngine->addBuilder(new PagesResultBuilder()); $api = new Api($httpRequestBuilder, $transportMock->reveal(), $resultBuilderEngine); $pageResult = $api->getPageResult($pageUrl); $page = $pageResult->getPage(); $this->assertEquals('A meta description', $page->getHeadContent()->MetaDescription); }