public function testLoadBlock() { $contentId = 12; $blockId = 'abc0123'; $block = new Block(array('id' => $blockId)); $zone = new Zone(array('blocks' => array($block))); $page = new Page(array('zones' => array($zone))); $value = new Value($page); $field = new Field(array('value' => $value)); $content = new Content(array('internalFields' => array($field))); $this->pageService->setStorageGateway($this->storageGateway); $this->storageGateway->expects($this->once())->method('getContentIdByBlockId')->with($blockId)->will($this->returnValue($contentId)); $this->contentService->expects($this->once())->method('loadContent')->with($contentId)->will($this->returnValue($content)); // Calling assertion twice to test cache (comes along with storage gateway's // getLocationIdByBlockId() that should be called only once. See above) $this->assertSame($block, $this->pageService->loadBlock($blockId)); $this->assertSame($block, $this->pageService->loadBlock($blockId)); }