Ejemplo n.º 1
0
 /**
  * @covers \BackBee\NestedNode\Repository\PageRepository::getOnlineDescendants
  * @covers \BackBee\NestedNode\Repository\PageRepository::getOrderingDescendants
  */
 public function testGetOnlineDescendants()
 {
     $section1 = $this->repository->find('section1');
     $section2 = $this->repository->find('section2');
     $page1 = $this->repository->find('page1');
     $page2 = $this->repository->find('page2');
     $page3 = $this->repository->find('page3');
     $this->root->setState(Page::STATE_ONLINE);
     $section2->setState(Page::STATE_ONLINE);
     $section1->setState(Page::STATE_ONLINE);
     $page1->setState(Page::STATE_ONLINE);
     $page2->setState(Page::STATE_ONLINE);
     $page3->setState(Page::STATE_ONLINE);
     self::$em->flush();
     $this->assertEquals(array(), $this->repository->getOnlineDescendants($page1));
     $this->assertEquals(array($page3, $section2, $section1, $page2, $page1), $this->repository->getOnlineDescendants($this->root));
     $this->assertEquals(array($section2, $section1, $page3), $this->repository->getOnlineDescendants($this->root, 1));
     $this->assertEquals(array($page3, $section2, $section1, $page2, $page1), $this->repository->getOnlineDescendants($this->root, 2));
     $this->assertEquals(array($this->root, $page3, $section2, $section1, $page2, $page1), $this->repository->getOnlineDescendants($this->root, 2, true));
     $this->assertEquals(array($this->root, $page3, $section2, $section1, $page2, $page1), $this->repository->getOnlineDescendants($this->root, 2, true, array()));
     $this->assertEquals(array($page1, $page2, $page3, $this->root, $section1, $section2), $this->repository->getOnlineDescendants($this->root, 2, true, array('_title' => 'ASC')));
     $this->assertEquals(array($this->root, $section1, $section2), $this->repository->getOnlineDescendants($this->root, 2, true, array('_title' => 'ASC'), false, null, null, true));
     $result = $this->repository->getOnlineDescendants($this->root, 2, true, array(), true, 1, 2);
     $this->assertInstanceOf('Doctrine\\ORM\\Tools\\Pagination\\Paginator', $result);
     $this->assertEquals(6, $result->count());
     $this->assertEquals(2, $result->getIterator()->count());
     $this->assertEquals(1, $result->getQuery()->getFirstResult());
     $this->assertEquals(2, $result->getQuery()->getMaxResults());
 }