EntityUtilsTest.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Tests\Unit\Service\Utils;
  3. use App\Entity\Access\Access;
  4. use App\Entity\Billing\BillingSetting;
  5. use App\Entity\Billing\ResidenceArea;
  6. use App\Entity\Education\EducationTiming;
  7. use App\Entity\Organization\Organization;
  8. use App\Service\Utils\EntityUtils;
  9. use PHPUnit\Framework\TestCase;
  10. class TestableEntityUtils extends EntityUtils {
  11. public function organizationDefaultValue($entity, Access $access): void { parent::organizationDefaultValue($entity, $access); }
  12. public function billingSettingDefaultValueDefaultValue($entity, Access $access): void { parent::billingSettingDefaultValueDefaultValue($entity, $access); }
  13. }
  14. class EntityUtilsTest extends TestCase
  15. {
  16. /**
  17. * @see EntityUtils::defaultValueSettersByAccess()
  18. */
  19. public function testDefaultValueSettersByAccess(): void {
  20. $utils = $this->getMockBuilder(TestableEntityUtils::class)
  21. ->setMethodsExcept(['defaultValueSettersByAccess'])
  22. ->getMock();
  23. $entity = $this->getMockBuilder(Organization::class)->getMock();
  24. $access = $this->getMockBuilder(Access::class)->getMock();
  25. $utils->expects(self::once())->method('organizationDefaultValue')->with($entity, $access);
  26. $utils->expects(self::once())->method('billingSettingDefaultValueDefaultValue')->with($entity, $access);
  27. $utils->defaultValueSettersByAccess($entity, $access);
  28. }
  29. /**
  30. * @see EntityUtils::organizationDefaultValue()
  31. */
  32. public function testOrganizationDefaultValue(): void {
  33. $utils = $this->getMockBuilder(TestableEntityUtils::class)
  34. ->setMethodsExcept(['organizationDefaultValue'])
  35. ->getMock();
  36. $organization = $this->getMockBuilder(Organization::class)->getMock();
  37. $entity = new EducationTiming(); // Can't test this method with a mocked entity...
  38. $access = $this->getMockBuilder(Access::class)->getMock();
  39. $access->method('getOrganization')->willReturn($organization);
  40. $utils->organizationDefaultValue($entity, $access);
  41. $this->assertEquals($organization, $entity->getOrganization());
  42. }
  43. /**
  44. * @see EntityUtils::billingSettingDefaultValueDefaultValue()
  45. */
  46. public function testBillingSettingDefaultValueDefaultValue(): void {
  47. $utils = $this->getMockBuilder(TestableEntityUtils::class)
  48. ->setMethodsExcept(['billingSettingDefaultValueDefaultValue'])
  49. ->getMock();
  50. $entity = new ResidenceArea(); // Can't test this method with a mocked entity...
  51. $billingSetting = $this->getMockBuilder(BillingSetting::class)->getMock();
  52. $organization = $this->getMockBuilder(Organization::class)->getMock();
  53. $organization->method('getBillingSetting')->willReturn($billingSetting);
  54. $access = $this->getMockBuilder(Access::class)->getMock();
  55. $access->method('getOrganization')->willReturn($organization);
  56. $utils->billingSettingDefaultValueDefaultValue($entity, $access);
  57. $this->assertEquals($billingSetting, $entity->getBillingSetting());
  58. }
  59. }