コード例 #1
0
 /**
  * @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());
 }
コード例 #2
0
 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);
 }