CurrentAccessExtensionIteratorTest.php 1.2 KB

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