OptionalsRolesIteratorTest.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. use App\Entity\Access\Access;
  3. use App\Service\Access\OptionalsRolesInterface;
  4. use App\Service\ServiceIterator\OptionalsRolesIterator;
  5. use PHPUnit\Framework\TestCase;
  6. class OptionalsRolesIteratorTest extends TestCase
  7. {
  8. public function testAddWhere() {
  9. $access = $this->getMockBuilder(Access::class)
  10. ->disableOriginalConstructor()
  11. ->getMock();
  12. $mocker = $this->getMockBuilder(OptionalsRolesInterface::class);
  13. $role1 = $mocker->getMock();
  14. $role1->method('support')->willReturn(false);
  15. $role2 = $mocker->getMock();
  16. $role2->method('support')->with($access)->willReturn(true);
  17. $role2->expects($this->once())->method('getRole')->willReturn('ROLE2');
  18. $role3 = $mocker->getMock();
  19. $role3->method('support')->willReturn(false);
  20. $role4 = $mocker->getMock();
  21. $role4->method('support')->with($access)->willReturn(true);
  22. $role4->expects($this->once())->method('getRole')->willReturn('ROLE4');
  23. $roles = [$role1, $role2, $role3, $role4];
  24. $iterator = new OptionalsRolesIterator($roles);
  25. $actualRoles = $iterator->getOptionalsRoles($access);
  26. $this->assertEquals(['ROLE2', 'ROLE4'], $actualRoles);
  27. $roles = [$role1, $role3];
  28. $iterator = new OptionalsRolesIterator($roles);
  29. $actualRoles = $iterator->getOptionalsRoles($access);
  30. $this->assertEquals([], $actualRoles);
  31. }
  32. }