/** * @dataProvider provideSaveSnippetPage */ public function testSaveLoadSnippetPage($webspaceKey, $templateKey, $locale, $data) { foreach ($data['hotels'] as &$varName) { $varName = $this->{$varName}->getUUid(); } $req = ContentMapperRequest::create()->setType(Structure::TYPE_PAGE)->setWebspaceKey($webspaceKey)->setTemplateKey($templateKey)->setLocale($locale)->setState(StructureInterface::STATE_PUBLISHED)->setUserId(1)->setData($data); $page = $this->contentMapper->saveRequest($req); foreach ($data as $key => $value) { $this->assertEquals($value, $page->getPropertyValue($key)); } $this->assertInstanceOf(PageBridge::class, $page); $this->assertEquals($templateKey, $page->getKey()); $page = $this->contentMapper->load($page->getUuid(), $webspaceKey, $locale); $this->assertInstanceOf(PageBridge::class, $page); $this->assertEquals($templateKey, $page->getKey()); foreach ($data as $key => $value) { if ($key === 'hotels') { continue; } $this->assertEquals($value, $page->getPropertyValue($key), 'Checking property "' . $key . '"'); } $hotels = $page->getPropertyValue('hotels'); $this->assertCount(count($data['hotels']), $hotels); $this->assertEquals($data['hotels'], $hotels); }
public function propertiesProvider() { $nodes = []; $max = 15; for ($i = 0; $i < $max; ++$i) { $data = ['title' => 'News ' . $i, 'url' => '/news/news-' . $i, 'ext' => ['excerpt' => ['title' => 'Excerpt Title ' . $i, 'tags' => []]]]; $template = 'simple'; if ($i > 2 * $max / 3) { $template = 'block'; $data['article'] = [['title' => 'Block Title ' . $i, 'article' => 'Blockarticle ' . $i, 'type' => 'test'], ['title' => 'Block Title 2 ' . $i, 'article' => 'Blockarticle2 ' . $i, 'type' => 'test']]; } elseif ($i > $max / 3) { $template = 'article'; $data['article'] = 'Text article ' . $i; } $request = ContentMapperRequest::create()->setData($data)->setTemplateKey($template)->setWebspaceKey('sulu_io')->setLocale('en')->setUserId(1)->setType('page')->setState(Structure::STATE_PUBLISHED); $node = $this->mapper->saveRequest($request); $nodes[$node->getUuid()] = $node; } return $nodes; }