/**
  * @covers \Ilios\CoreBundle\Entity\Manager\PermissionManager::userHasWritePermissionToSchools
  */
 public function testUserHasWritePermissionToSchools()
 {
     $schoolA = new School();
     $schoolA->setId(100);
     $schoolB = new School();
     $schoolB->setId(200);
     $schoolC = new School();
     $schoolC->setId(300);
     $schoolPermissionA = new Permission();
     $schoolPermissionA->setTableRowId(100);
     $schoolPermissionB = new Permission();
     $schoolPermissionB->setTableRowId(200);
     $schoolPermissionC = new Permission();
     $schoolPermissionC->setTableRowId(300);
     $user = new User();
     $class = 'Ilios\\CoreBundle\\Entity\\Permission';
     $em = m::mock('Doctrine\\ORM\\EntityManager');
     $repository = m::mock('Doctrine\\ORM\\Repository')->shouldReceive('findBy')->with(['tableName' => 'school', 'canWrite' => true, 'user' => $user], null, null, null)->andReturn([$schoolPermissionA, $schoolPermissionB])->mock();
     $registry = m::mock('Doctrine\\Bundle\\DoctrineBundle\\Registry')->shouldReceive('getManagerForClass')->andReturn($em)->shouldReceive('getRepository')->andReturn($repository)->mock();
     $manager = new PermissionManager($registry, $class);
     $this->assertTrue($manager->userHasWritePermissionToSchools($user, new ArrayCollection([$schoolA])));
     $this->assertTrue($manager->userHasWritePermissionToSchools($user, new ArrayCollection([$schoolA, $schoolC])));
     $this->assertFalse($manager->userHasWritePermissionToSchools($user, new ArrayCollection([$schoolC])));
     $this->assertFalse($manager->userHasWritePermissionToSchools($user, new ArrayCollection()));
 }