OptionalsRolesIteratorTest.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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(): void
  9. {
  10. $access = $this->getMockBuilder(Access::class)->getMock();
  11. $mocker = $this->getMockBuilder(OptionalsRolesInterface::class);
  12. $role1 = $mocker->getMock();
  13. $role1->method('support')->willReturn(false);
  14. $role2 = $mocker->getMock();
  15. $role2->method('support')->with($access)->willReturn(true);
  16. $role2->expects($this->once())->method('getRole')->willReturn('ROLE2');
  17. $role3 = $mocker->getMock();
  18. $role3->method('support')->willReturn(false);
  19. $role4 = $mocker->getMock();
  20. $role4->method('support')->with($access)->willReturn(true);
  21. $role4->expects($this->once())->method('getRole')->willReturn('ROLE4');
  22. $roles = [$role1, $role2, $role3, $role4];
  23. $iterator = $this->getMockBuilder(OptionalsRolesIterator::class)
  24. ->setConstructorArgs([$roles])
  25. ->setMethodsExcept(['getOptionalsRoles'])
  26. ->getMock();
  27. $actualRoles = $iterator->getOptionalsRoles($access);
  28. $this->assertEquals(['ROLE2', 'ROLE4'], $actualRoles);
  29. }
  30. public function testAddWhereNotFound(): void
  31. {
  32. $access = $this->getMockBuilder(Access::class)->getMock();
  33. $mocker = $this->getMockBuilder(OptionalsRolesInterface::class);
  34. $role1 = $mocker->getMock();
  35. $role1->method('support')->willReturn(false);
  36. $role2 = $mocker->getMock();
  37. $role2->method('support')->willReturn(false);
  38. $roles = [$role1, $role2];
  39. $iterator = $this->getMockBuilder(OptionalsRolesIterator::class)
  40. ->setConstructorArgs([$roles])
  41. ->setMethodsExcept(['getOptionalsRoles'])
  42. ->getMock();
  43. $actualRoles = $iterator->getOptionalsRoles($access);
  44. $this->assertEquals([], $actualRoles);
  45. }
  46. }