Example #1
0
 public function testChildPageAccessors()
 {
     $slug = new Slug();
     $slug->setUrl('/root');
     $page = new Page();
     $page->setCurrentSlug($slug);
     $this->assertEmpty($page->getChildPages()->toArray());
     $firstSlug = new Slug();
     $firstSlug->setUrl('/first');
     $firstPage = new Page();
     $firstPage->setLevel(1);
     $firstPage->setCurrentSlug($firstSlug);
     $secondSlug = new Slug();
     $secondSlug->setUrl('/second');
     $secondPage = new Page();
     $secondPage->setLevel(2);
     $secondPage->setCurrentSlug($secondSlug);
     $page->addChildPage($firstPage)->addChildPage($secondPage)->addChildPage($secondPage);
     $this->assertEquals([$firstPage, $secondPage], array_values($page->getChildPages()->toArray()));
     $this->assertEquals('/root/first', $firstPage->getCurrentSlugUrl());
     $this->assertEquals('/root/second', $secondPage->getCurrentSlugUrl());
     $page->removeChildPage($firstPage)->removeChildPage($firstPage);
     $this->assertEquals([$secondPage], array_values($page->getChildPages()->toArray()));
     $this->assertEquals('/first', $firstPage->getCurrentSlugUrl());
     $this->assertEquals('/root/second', $secondPage->getCurrentSlugUrl());
 }