OnOrganizationChangeTest.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. namespace App\Test\Service\OnChange\Organization;
  3. use App\Entity\Billing\BillingSetting;
  4. use App\Entity\Organization\Organization;
  5. use App\Entity\Organization\Parameters;
  6. use App\Enum\Organization\LegalEnum;
  7. use App\Service\OnChange\OnChangeContext;
  8. use App\Service\OnChange\Organization\OnOrganizationChange;
  9. use PHPUnit\Framework\TestCase;
  10. class OnOrganizationChangeTest extends TestCase
  11. {
  12. public function testBeforeChangeNoChange(): void
  13. {
  14. $onOrganizationChange = $this
  15. ->getMockBuilder(OnOrganizationChange::class)
  16. ->setMethodsExcept(['beforeChange'])
  17. ->disableOriginalConstructor()
  18. ->getMock();
  19. $onOrganizationChange
  20. ->expects(self::never())
  21. ->method('onLegalStatusChange')
  22. ->willReturnSelf();
  23. $previousOrganization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
  24. $previousOrganization->expects(self::once())->method('getLegalStatus')->willReturn('ASSOCIATION_LAW_1901');
  25. $context = $this->getMockBuilder(OnChangeContext::class)->disableOriginalConstructor()->getMock();
  26. $context->method('previousData')->willReturn($previousOrganization);
  27. $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
  28. $organization->expects(self::once())->method('getLegalStatus')->willReturn('ASSOCIATION_LAW_1901');
  29. $onOrganizationChange->beforeChange($organization, $context);
  30. }
  31. public function testBeforeChangeLegalStatusChanged(): void
  32. {
  33. $onOrganizationChange = $this
  34. ->getMockBuilder(OnOrganizationChange::class)
  35. ->setMethodsExcept(['beforeChange'])
  36. ->disableOriginalConstructor()
  37. ->getMock();
  38. $onOrganizationChange
  39. ->expects(self::once())
  40. ->method('onLegalStatusChange')
  41. ->willReturnSelf();
  42. $previousOrganization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
  43. $previousOrganization->expects(self::once())->method('getLegalStatus')->willReturn('ASSOCIATION_LAW_1901');
  44. $context = $this->getMockBuilder(OnChangeContext::class)->disableOriginalConstructor()->getMock();
  45. $context->method('previousData')->willReturn($previousOrganization);
  46. $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
  47. $organization->expects(self::once())->method('getLegalStatus')->willReturn('LOCAL_AUTHORITY');
  48. $onOrganizationChange->beforeChange($organization, $context);
  49. }
  50. /**
  51. * @see OnOrganizationChange::onLegalStatusChange()
  52. */
  53. public function testOnLegalStatusChangeToAsso(){
  54. $onOrganizationChange = $this
  55. ->getMockBuilder(OnOrganizationChange::class)
  56. ->setMethodsExcept(['onLegalStatusChange'])
  57. ->disableOriginalConstructor()
  58. ->getMock();
  59. $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
  60. $organization->method('getLegalStatus')->willReturn(LegalEnum::ASSOCIATION_LAW_1901()->getValue());
  61. $parameters = $this->getMockBuilder(Parameters::class)->disableOriginalConstructor()->getMock();
  62. $organization->method('getParameters')->willReturn($parameters);
  63. $billingSettings = $this->getMockBuilder(BillingSetting::class)->disableOriginalConstructor()->getMock();
  64. $organization->method('getBillingSetting')->willReturn($billingSettings);
  65. $parameters->expects(self::never())->method('setShowAdherentList');
  66. $billingSettings->expects(self::never())->method('setApplyVat');
  67. $onOrganizationChange->onLegalStatusChange($organization);
  68. }
  69. /**
  70. * @see OnOrganizationChange::onLegalStatusChange()
  71. */
  72. public function testOnLegalStatusChangeToSociety(){
  73. $onOrganizationChange = $this
  74. ->getMockBuilder(OnOrganizationChange::class)
  75. ->setMethodsExcept(['onLegalStatusChange'])
  76. ->disableOriginalConstructor()
  77. ->getMock();
  78. $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock();
  79. $organization->method('getLegalStatus')->willReturn(LegalEnum::COMMERCIAL_SOCIETY()->getValue());
  80. $parameters = $this->getMockBuilder(Parameters::class)->disableOriginalConstructor()->getMock();
  81. $organization->method('getParameters')->willReturn($parameters);
  82. $billingSettings = $this->getMockBuilder(BillingSetting::class)->disableOriginalConstructor()->getMock();
  83. $organization->method('getBillingSetting')->willReturn($billingSettings);
  84. $parameters->expects(self::once())->method('setShowAdherentList')->with(false);
  85. $billingSettings->expects(self::once())->method('setApplyVat')->with(true);
  86. $onOrganizationChange->onLegalStatusChange($organization);
  87. }
  88. }