public function getAllChildren($checkIsAllowMemberCommunity = false)
 {
     $roots = $this->retrieveAllRoots();
     $children = $this->retrieveAllChildren();
     // sort by root category
     $temp = array();
     foreach ($children as $child) {
         if ($checkIsAllowMemberCommunity && !$child->getIsAllowMemberCommunity()) {
             continue;
         }
         $temp[$child->getTreeKey()][] = $child;
     }
     $data = array();
     foreach ($roots as $root) {
         if (isset($temp[$root->getId()])) {
             $data = array_merge($data, $temp[$root->getId()]);
         }
     }
     $collection = new Doctrine_Collection($this);
     $collection->setData($data);
     return $collection;
 }
 public function testGetScreenPermissionsMany()
 {
     $module = 'xim';
     $action = 'doThis';
     $roles = array('Admin', 'ESS', 'Supervisor');
     $doctrineCollection = new Doctrine_Collection('ScreenPermission');
     $screenPermission1 = new ScreenPermission();
     $screenPermission1->fromArray(array('id' => 1, 'user_role_id' => 1, 'screen_id' => 1, 'can_read' => 0, 'can_create' => 0, 'can_update' => 0, 'can_delete' => 0));
     $screenPermission2 = new ScreenPermission();
     $screenPermission2->fromArray(array('id' => 1, 'user_role_id' => 1, 'screen_id' => 1, 'can_read' => 0, 'can_create' => 1, 'can_update' => 0, 'can_delete' => 0));
     $screenPermission3 = new ScreenPermission();
     $screenPermission3->fromArray(array('id' => 1, 'user_role_id' => 1, 'screen_id' => 1, 'can_read' => 0, 'can_create' => 1, 'can_update' => 0, 'can_delete' => 1));
     $screenPermissions = array($screenPermission1, $screenPermission2, $screenPermission3);
     $doctrineCollection->setData($screenPermissions);
     $mockDao = $this->getMock('ScreenPermissionDao', array('getScreenPermissions'));
     $mockDao->expects($this->once())->method('getScreenPermissions')->with($module, $action, $roles)->will($this->returnValue($doctrineCollection));
     $this->service->setScreenPermissionDao($mockDao);
     $permissions = $this->service->getScreenPermissions($module, $action, $roles);
     $this->assertTrue($permissions instanceof ResourcePermission);
     $this->verifyPermissions($permissions, false, true, false, true);
 }