RedUNIT\Base\Traverse::testTraversePaths PHP Метод

testTraversePaths() публичный Метод

Test traversing paths, ancestry.
public testTraversePaths ( ) : void
Результат void
    public function testTraversePaths()
    {
        R::nuke();
        $pageA = R::dispense('page')->setAttr('title', 'a');
        $pageB = R::dispense('page')->setAttr('title', 'b');
        $pageC = R::dispense('page')->setAttr('title', 'c');
        $pageD = R::dispense('page')->setAttr('title', 'd');
        $pageE = R::dispense('page')->setAttr('title', 'e');
        $pageF = R::dispense('page')->setAttr('title', 'f');
        $pageG = R::dispense('page')->setAttr('title', 'g');
        $pageH = R::dispense('page')->setAttr('title', 'h');
        $pageA->ownPage = array($pageB, $pageC);
        $pageB->ownPage = array($pageD);
        $pageC->ownPage = array($pageE, $pageF);
        $pageD->ownPage = array($pageG);
        $pageF->ownPage = array($pageH);
        R::store($pageA);
        $parents = array();
        $pageF->traverse('page', function ($page) use(&$parents) {
            $parents[] = $page->title;
        });
        asrt(implode(',', $parents), 'c,a');
        $parents = array();
        $pageH->traverse('page', function ($page) use(&$parents) {
            $parents[] = $page->title;
        });
        asrt(implode(',', $parents), 'f,c,a');
        $parents = array();
        $pageG->traverse('page', function ($page) use(&$parents) {
            $parents[] = $page->title;
        });
        asrt(implode(',', $parents), 'd,b,a');
        $path = array();
        $pageA->traverse('ownPageList', function ($page) use(&$path) {
            $path[] = $page->title;
        });
        asrt(implode(',', $path), 'b,d,g,c,e,f,h');
        $path = array();
        $pageC->traverse('ownPageList', function ($page) use(&$path) {
            $path[] = $page->title;
        });
        asrt(implode(',', $path), 'e,f,h');
        $path = array();
        $pageA->traverse('ownPageList', function ($page) use(&$path) {
            $path[] = $page->title;
        }, 2);
        asrt(implode(',', $path), 'b,d,c,e,f');
    }