| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- declare(strict_types=1);
- namespace App\Tests\Doctrine\Billing;
- use App\Doctrine\Billing\CurrentResidenceAreaExtension;
- use App\Entity\Access\Access;
- use App\Entity\Billing\BillingSetting;
- use App\Entity\Billing\ResidenceArea;
- use App\Entity\Organization\Organization;
- use Doctrine\ORM\QueryBuilder;
- use PHPUnit\Framework\TestCase;
- use Symfony\Bundle\SecurityBundle\Security;
- class CurrentResidenceAreaExtensionTest extends TestCase
- {
- private $security;
- private $queryBuilder;
- private $extension;
- private $user;
- private $organization;
- private $billingSetting;
- protected function setUp(): void
- {
- $this->security = $this->createMock(Security::class);
- $this->queryBuilder = $this->createMock(QueryBuilder::class);
- $this->user = $this->createMock(Access::class);
- $this->organization = $this->createMock(Organization::class);
- $this->billingSetting = $this->createMock(BillingSetting::class);
- $this->extension = new CurrentResidenceAreaExtension($this->security);
- }
- public function testSupportsReturnsTrueForResidenceAreaClass()
- {
- $this->assertTrue($this->extension->supports(ResidenceArea::class, null));
- }
- public function testSupportsReturnsFalseForOtherClasses()
- {
- $this->assertFalse($this->extension->supports('OtherClass', null));
- }
- public function testAddWhere()
- {
- $this->user->method('getOrganization')->willReturn($this->organization);
- $this->organization->method('getBillingSetting')->willReturn($this->billingSetting);
- $this->security->method('getUser')->willReturn($this->user);
- $this->queryBuilder->method('getRootAliases')->willReturn(['a']);
- $this->queryBuilder->expects($this->once())
- ->method('andWhere')
- ->with('a.billingSetting = :billingSetting')
- ->willReturn($this->queryBuilder);
- $this->queryBuilder->expects($this->once())
- ->method('setParameter')
- ->with('billingSetting', $this->billingSetting)
- ->willReturn($this->queryBuilder);
- $reflection = new \ReflectionClass($this->extension);
- $method = $reflection->getMethod('addWhere');
- $method->setAccessible(true);
- $method->invoke($this->extension, $this->queryBuilder, ResidenceArea::class, null);
- }
- }
|