/**
  * @covers \Ilios\CoreBundle\Entity\Manager\PermissionManager::userHasReadPermissionToCoursesInSchool
  */
 public function testUserHasReadPermissionToCoursesBySchool()
 {
     $schoolA = new School();
     $schoolA->setId(100);
     $schoolB = new School();
     $schoolB->setId(200);
     $schoolC = new School();
     $schoolC->setId(300);
     $courseA = new Course();
     $courseA->setId(1);
     $schoolA->addCourse($courseA);
     $courseB = new Course();
     $courseB->setId(2);
     $schoolB->addCourse($courseB);
     $coursePermissionA = new Permission();
     $coursePermissionA->setTableRowId(1);
     $user = new User();
     $class = 'Ilios\\CoreBundle\\Entity\\Permission';
     $em = m::mock('Doctrine\\ORM\\EntityManager');
     $repository = m::mock('Doctrine\\ORM\\Repository')->shouldReceive('findOneBy')->with(['tableName' => 'course', 'canRead' => true, 'user' => $user, 'tableRowId' => $courseA->getId()], null)->andReturn([$coursePermissionA])->mock();
     $registry = m::mock('Doctrine\\Bundle\\DoctrineBundle\\Registry')->shouldReceive('getManagerForClass')->andReturn($em)->shouldReceive('getRepository')->andReturn($repository)->mock();
     $manager = new PermissionManager($registry, $class);
     $this->assertFalse($manager->userHasReadPermissionToCoursesInSchool($user, null));
     $this->assertTrue($manager->userHasReadPermissionToCoursesInSchool($user, $schoolA));
     $repository = m::mock('Doctrine\\ORM\\Repository')->shouldReceive('findOneBy')->with(['tableName' => 'course', 'canRead' => true, 'user' => $user, 'tableRowId' => $courseB->getId()], null)->andReturn(null)->mock();
     $registry = m::mock('Doctrine\\Bundle\\DoctrineBundle\\Registry')->shouldReceive('getManagerForClass')->andReturn($em)->shouldReceive('getRepository')->andReturn($repository)->mock();
     $manager = new PermissionManager($registry, $class);
     $this->assertFalse($manager->userHasReadPermissionToCoursesInSchool($user, $schoolB));
     $repository = m::mock('Doctrine\\ORM\\Repository')->shouldNotReceive('findOneBy')->mock();
     $registry = m::mock('Doctrine\\Bundle\\DoctrineBundle\\Registry')->shouldReceive('getManagerForClass')->andReturn($em)->shouldReceive('getRepository')->andReturn($repository)->mock();
     $manager = new PermissionManager($registry, $class);
     $this->assertFalse($manager->userHasReadPermissionToCoursesInSchool($user, $schoolC));
 }