X-Git-Url: https://git.agnieray.net/?a=blobdiff_plain;f=tests%2FGalette%2FFeatures%2Ftests%2Funits%2FHasEvent.php;fp=tests%2FGalette%2FFeatures%2Ftests%2Funits%2FHasEvent.php;h=2f175922daa85439cf4ccbbf7943ad0d48a36a2f;hb=280706510665e680011201e5305f7d3ad9db3411;hp=0000000000000000000000000000000000000000;hpb=a3aaea8e88f50171b859c599541603828d388ee4;p=galette.git diff --git a/tests/Galette/Features/tests/units/HasEvent.php b/tests/Galette/Features/tests/units/HasEvent.php new file mode 100644 index 000000000..2f175922d --- /dev/null +++ b/tests/Galette/Features/tests/units/HasEvent.php @@ -0,0 +1,124 @@ +. + * + * @category Features + * @package GaletteTests + * + * @author Johan Cwiklinski + * @copyright 2024 The Galette Team + * @license https://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version + * @link https://galette.eu + */ + +namespace Galette\Entity\test\units; + +use Galette\GaletteTestCase; + +/** + * HasEvent tests class + * + * @category Features + * @name HasEvents + * @package GaletteTests + * @author Johan Cwiklinski + * @copyright 2024 The Galette Team + * @license https://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version + * @link https://galette.eu + */ +class HasEvent extends GaletteTestCase +{ + protected int $seed = 20240223092214; + + /** + * Test HasEvent capacities + * + * @return void + */ + public function testCapacities(): void + { + $this->adh = new \Galette\Entity\Adherent($this->zdb); + + //per default, add and edit events are active on contributions + $contrib = new \Galette\Entity\Contribution($this->zdb, $this->login); + $this->assertTrue($contrib->areEventsEnabled()); + $this->assertTrue($contrib->hasAddEvent()); + $this->assertTrue($contrib->hasEditEvent()); + $this->assertFalse($contrib->hasDeleteEvent()); + $this->assertEquals('contribution.add', $contrib->getAddEventName()); + $this->assertEquals('contribution.edit', $contrib->getEditEventName()); + $this->assertNull($contrib->getDeleteEventName()); + + //per default, add and edit events are active on members + $this->assertTrue($this->adh->areEventsEnabled()); + $this->assertTrue($this->adh->hasAddEvent()); + $this->assertTrue($this->adh->hasEditEvent()); + $this->assertFalse($this->adh->hasDeleteEvent()); + $this->assertEquals('member.add', $this->adh->getAddEventName()); + $this->assertEquals('member.edit', $this->adh->getEditEventName()); + $this->assertNull($this->adh->getDeleteEventName()); + + //disable add event + $this->adh->withoutAddEvent(); + $this->assertFalse($this->adh->hasAddEvent()); + $this->assertNull($this->adh->getAddEventName()); + $this->assertTrue($this->adh->hasEditEvent()); + //enable add event + $this->adh->withAddEvent(); + $this->assertTrue($this->adh->hasAddEvent()); + + //disable edit event + $this->adh->withoutEditEvent(); + $this->assertTrue($this->adh->hasAddEvent()); + $this->assertFalse($this->adh->hasEditEvent()); + $this->assertNull($this->adh->getEditEventName()); + //enable edit event + $this->adh->withEditEvent(); + $this->assertTrue($this->adh->hasEditEvent()); + + //enable delete event + $this->adh->withDeleteEvent(); + $this->assertTrue($this->adh->hasDeleteEvent()); + $this->assertEquals('member.delete', $this->adh->getDeleteEventName()); + //disable delete event + $this->adh->withoutDeleteEvent(); + $this->assertFalse($this->adh->hasDeleteEvent()); + + // disable all events + $this->adh->disableEvents(); + $this->assertFalse($this->adh->areEventsEnabled()); + $this->assertFalse($this->adh->hasAddEvent()); + $this->assertFalse($this->adh->hasEditEvent()); + $this->assertFalse($this->adh->hasDeleteEvent()); + $this->assertNull($this->adh->getAddEventName()); + $this->assertNull($this->adh->getEditEventName()); + $this->assertNull($this->adh->getDeleteEventName()); + + //reactivate events + $this->adh->activateEvents(); + $this->assertTrue($this->adh->areEventsEnabled()); + $this->assertTrue($this->adh->hasAddEvent()); + $this->assertTrue($this->adh->hasEditEvent()); + $this->assertFalse($this->adh->hasDeleteEvent()); + } +}