/** * Initializes the page. * * @param Page $page Page to initialize. * * @return self */ public function initPage(Page $page) { /* @var $annotations PageUrlAnnotation[] */ $annotations = $this->annotationManager->getClassAnnotations($page, '@page-url'); if (empty($annotations)) { return $this; } $page->setUrlBuilder($this->urlBuilderFactory->getUrlBuilder($annotations[0]->url, $annotations[0]->params, $this->config->getOption('base_url'))); return $this; }
/** * @dataProvider initPageDataProvider */ public function testInitPage($url, array $params, $use_url_builder) { $this->expectPageUrlAnnotation($url, $params); /* @var $page Page */ $page = m::mock($this->pageClass); $urlBuilder = m::mock(self::URL_BUILDER_INTERFACE); $this->realFactory->setUrlBuilderFactory($this->urlBuilderFactory); $this->urlBuilderFactory->shouldReceive('getUrlBuilder')->with($url, $params, 'http://domain.tld')->times(isset($url) ? 1 : 0)->andReturn($urlBuilder); $page->shouldReceive('setUrlBuilder')->times($use_url_builder ? 1 : 0)->andReturn($page); $this->assertSame($this->realFactory, $this->realFactory->initPage($page)); }