| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace App\Tests\Unit\Service\Utils;
- use App\Entity\Access\Access;
- use App\Entity\Billing\BillingSetting;
- use App\Entity\Billing\ResidenceArea;
- use App\Entity\Education\EducationTiming;
- use App\Entity\Organization\Organization;
- use App\Service\Utils\EntityUtils;
- use Doctrine\ORM\EntityManagerInterface;
- use PHPUnit\Framework\MockObject\MockObject;
- use PHPUnit\Framework\TestCase;
- use Symfony\Component\Mercure\HubInterface;
- class TestableEntityUtils extends EntityUtils
- {
- public function organizationDefaultValue($entity, Access $access): void
- {
- parent::organizationDefaultValue($entity, $access);
- }
- public function billingSettingDefaultValueDefaultValue($entity, Access $access): void
- {
- parent::billingSettingDefaultValueDefaultValue($entity, $access);
- }
- }
- class EntityUtilsTest extends TestCase
- {
- private EntityManagerInterface $entityManager;
- public function setUp(): void {
- $this->entityManager = $this->getMockBuilder(EntityManagerInterface::class)->disableOriginalConstructor()->getMock();
- }
- protected function getEntityUtilsMockFor(string $method): MockObject | TestableEntityUtils
- {
- return $this->getMockBuilder(TestableEntityUtils::class)
- ->setConstructorArgs([$this->entityManager])
- ->setMethodsExcept([$method])
- ->getMock();
- }
- /**
- * @see EntityUtils::defaultValueSettersByAccess()
- */
- public function testDefaultValueSettersByAccess(): void
- {
- $utils = $this->getEntityUtilsMockFor('defaultValueSettersByAccess');
- $entity = $this->getMockBuilder(Organization::class)->getMock();
- $access = $this->getMockBuilder(Access::class)->getMock();
- $utils->expects(self::once())->method('organizationDefaultValue')->with($entity, $access);
- $utils->expects(self::once())->method('billingSettingDefaultValueDefaultValue')->with($entity, $access);
- $utils->defaultValueSettersByAccess($entity, $access);
- }
- /**
- * @see EntityUtils::organizationDefaultValue()
- */
- public function testOrganizationDefaultValue(): void
- {
- $utils = $this->getEntityUtilsMockFor('organizationDefaultValue');
- $organization = $this->getMockBuilder(Organization::class)->getMock();
- $entity = new EducationTiming(); // Can't test this method with a mocked entity...
- $access = $this->getMockBuilder(Access::class)->getMock();
- $access->method('getOrganization')->willReturn($organization);
- $utils->organizationDefaultValue($entity, $access);
- $this->assertEquals($organization, $entity->getOrganization());
- }
- /**
- * @see EntityUtils::billingSettingDefaultValueDefaultValue()
- */
- public function testBillingSettingDefaultValueDefaultValue(): void
- {
- $utils = $this->getEntityUtilsMockFor('billingSettingDefaultValueDefaultValue');
- $entity = new ResidenceArea(); // Can't test this method with a mocked entity...
- $billingSetting = $this->getMockBuilder(BillingSetting::class)->getMock();
- $organization = $this->getMockBuilder(Organization::class)->getMock();
- $organization->method('getBillingSetting')->willReturn($billingSetting);
- $access = $this->getMockBuilder(Access::class)->getMock();
- $access->method('getOrganization')->willReturn($organization);
- $utils->billingSettingDefaultValueDefaultValue($entity, $access);
- $this->assertEquals($billingSetting, $entity->getBillingSetting());
- }
- }
|