CurrentAccessExtensionIteratorTest.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Tests\Unit\Service\ServiceIterator;
  3. use App\Doctrine\Access\AdditionalExtension\AdditionalAccessExtensionInterface;
  4. use App\Service\ServiceIterator\CurrentAccessExtensionIterator;
  5. use Doctrine\ORM\QueryBuilder;
  6. use PHPUnit\Framework\TestCase;
  7. class CurrentAccessExtensionIteratorTest extends TestCase
  8. {
  9. /**
  10. * @see CurrentAccessExtensionIterator::addWhere()
  11. */
  12. public function testAddWhere(): void
  13. {
  14. $queryBuilder = $this->getMockBuilder(QueryBuilder::class)
  15. ->disableOriginalConstructor()
  16. ->getMock();
  17. $mocker = $this->getMockBuilder(AdditionalAccessExtensionInterface::class);
  18. $ext1 = $mocker->getMock();
  19. $ext1->method('support')->willReturn(false);
  20. $ext1->expects($this->never())->method('addWhere')->with($queryBuilder);
  21. $ext2 = $mocker->getMock();
  22. $ext2->method('support')->with('foo')->willReturn(true);
  23. $ext2->expects($this->once())->method('addWhere')->with($queryBuilder);
  24. $ext3 = $mocker->getMock();
  25. $ext3->method('support')->willReturn(false);
  26. $ext1->expects($this->never())->method('addWhere')->with($queryBuilder);
  27. $extensions = [$ext1, $ext2, $ext3];
  28. $iterator = $this->getMockBuilder(CurrentAccessExtensionIterator::class)
  29. ->setConstructorArgs([$extensions])
  30. ->setMethodsExcept(['addWhere'])
  31. ->getMock();
  32. $iterator->addWhere($queryBuilder, 'foo');
  33. }
  34. }