organization = new Organization(); $this->onOrganizationChange = new OnOrganizationChange(); } public function testBeforeChangeNoChange(): void { $onOrganizationChange = $this ->getMockBuilder(OnOrganizationChange::class) ->onlyMethods(['onLegalStatusChange']) ->disableOriginalConstructor() ->getMock(); $onOrganizationChange ->expects(self::never()) ->method('onLegalStatusChange') ->willReturnSelf(); $previousOrganization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock(); $previousOrganization->expects(self::once())->method('getLegalStatus')->willReturn('ASSOCIATION_LAW_1901'); $context = $this->getMockBuilder(OnChangeContext::class)->disableOriginalConstructor()->getMock(); $context->method('previousData')->willReturn($previousOrganization); $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock(); $organization->expects(self::once())->method('getLegalStatus')->willReturn('ASSOCIATION_LAW_1901'); $onOrganizationChange->beforeChange($organization, $context); } public function testBeforeChangeLegalStatusChanged(): void { $onOrganizationChange = $this ->getMockBuilder(OnOrganizationChange::class) ->onlyMethods(['onLegalStatusChange']) ->disableOriginalConstructor() ->getMock(); $onOrganizationChange ->expects(self::once()) ->method('onLegalStatusChange') ->willReturnSelf(); $previousOrganization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock(); $previousOrganization->expects(self::once())->method('getLegalStatus')->willReturn('ASSOCIATION_LAW_1901'); $context = $this->getMockBuilder(OnChangeContext::class)->disableOriginalConstructor()->getMock(); $context->method('previousData')->willReturn($previousOrganization); $organization = $this->getMockBuilder(Organization::class)->disableOriginalConstructor()->getMock(); $organization->expects(self::once())->method('getLegalStatus')->willReturn('LOCAL_AUTHORITY'); $onOrganizationChange->beforeChange($organization, $context); } /** * @see OnOrganizationChange::onLegalStatusChange() */ public function testOnLegalStatusChange(){ $this->organization->setLegalStatus(LegalEnum::COMMERCIAL_SOCIETY()->getValue()); $parameters = new Parameters(); $parameters->setShowAdherentList(true); $billingSettings = new BillingSetting(); $billingSettings->setApplyVat(false); $this->organization->setParameters($parameters); $this->organization->setBillingSetting($billingSettings); $this->onOrganizationChange->onLegalStatusChange($this->organization); $this->assertFalse($this->organization->getParameters()->getShowAdherentList()); $this->assertTrue($this->organization->getBillingSetting()->getApplyVat()); } }