8 * Copyright © 2024 The Galette Team
10 * This file is part of Galette (http://galette.tuxfamily.org).
12 * Galette is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation, either version 3 of the License, or
15 * (at your option) any later version.
17 * Galette is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
22 * You should have received a copy of the GNU General Public License
23 * along with Galette. If not, see <http://www.gnu.org/licenses/>.
26 * @package GaletteTests
28 * @author Johan Cwiklinski <johan@x-tnd.be>
29 * @copyright 2024 The Galette Team
30 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
31 * @link https://galette.eu
34 namespace Galette\Entity\test\units
;
36 use Galette\GaletteTestCase
;
39 * HasEvent tests class
43 * @package GaletteTests
44 * @author Johan Cwiklinski <johan@x-tnd.be>
45 * @copyright 2024 The Galette Team
46 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
47 * @link https://galette.eu
49 class HasEvent
extends GaletteTestCase
51 protected int $seed = 20240223092214;
54 * Test HasEvent capacities
58 public function testCapacities(): void
60 $this->adh
= new \Galette\Entity\
Adherent($this->zdb
);
62 //per default, add and edit events are active on contributions
63 $contrib = new \Galette\Entity\
Contribution($this->zdb
, $this->login
);
64 $this->assertTrue($contrib->areEventsEnabled());
65 $this->assertTrue($contrib->hasAddEvent());
66 $this->assertTrue($contrib->hasEditEvent());
67 $this->assertFalse($contrib->hasDeleteEvent());
68 $this->assertEquals('contribution.add', $contrib->getAddEventName());
69 $this->assertEquals('contribution.edit', $contrib->getEditEventName());
70 $this->assertNull($contrib->getDeleteEventName());
72 //per default, add and edit events are active on members
73 $this->assertTrue($this->adh
->areEventsEnabled());
74 $this->assertTrue($this->adh
->hasAddEvent());
75 $this->assertTrue($this->adh
->hasEditEvent());
76 $this->assertFalse($this->adh
->hasDeleteEvent());
77 $this->assertEquals('member.add', $this->adh
->getAddEventName());
78 $this->assertEquals('member.edit', $this->adh
->getEditEventName());
79 $this->assertNull($this->adh
->getDeleteEventName());
82 $this->adh
->withoutAddEvent();
83 $this->assertFalse($this->adh
->hasAddEvent());
84 $this->assertNull($this->adh
->getAddEventName());
85 $this->assertTrue($this->adh
->hasEditEvent());
87 $this->adh
->withAddEvent();
88 $this->assertTrue($this->adh
->hasAddEvent());
91 $this->adh
->withoutEditEvent();
92 $this->assertTrue($this->adh
->hasAddEvent());
93 $this->assertFalse($this->adh
->hasEditEvent());
94 $this->assertNull($this->adh
->getEditEventName());
96 $this->adh
->withEditEvent();
97 $this->assertTrue($this->adh
->hasEditEvent());
100 $this->adh
->withDeleteEvent();
101 $this->assertTrue($this->adh
->hasDeleteEvent());
102 $this->assertEquals('member.delete', $this->adh
->getDeleteEventName());
103 //disable delete event
104 $this->adh
->withoutDeleteEvent();
105 $this->assertFalse($this->adh
->hasDeleteEvent());
107 // disable all events
108 $this->adh
->disableEvents();
109 $this->assertFalse($this->adh
->areEventsEnabled());
110 $this->assertFalse($this->adh
->hasAddEvent());
111 $this->assertFalse($this->adh
->hasEditEvent());
112 $this->assertFalse($this->adh
->hasDeleteEvent());
113 $this->assertNull($this->adh
->getAddEventName());
114 $this->assertNull($this->adh
->getEditEventName());
115 $this->assertNull($this->adh
->getDeleteEventName());
118 $this->adh
->activateEvents();
119 $this->assertTrue($this->adh
->areEventsEnabled());
120 $this->assertTrue($this->adh
->hasAddEvent());
121 $this->assertTrue($this->adh
->hasEditEvent());
122 $this->assertFalse($this->adh
->hasDeleteEvent());