Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
7d61e75f | 4 | | Copyright CiviCRM LLC. All rights reserved. | |
6a488035 | 5 | | | |
7d61e75f TO |
6 | | This work is published under the GNU AGPLv3 license with some | |
7 | | permitted exceptions and without any warranty. For full license | | |
8 | | and copyright information, see https://civicrm.org/licensing | | |
6a488035 | 9 | +--------------------------------------------------------------------+ |
d25dd0ee | 10 | */ |
6a488035 | 11 | |
e9479dcf EM |
12 | /** |
13 | * Class CRM_Member_BAO_MembershipStatusTest | |
acb109b7 | 14 | * @group headless |
e9479dcf | 15 | */ |
6a488035 | 16 | class CRM_Member_BAO_MembershipStatusTest extends CiviUnitTestCase { |
6a488035 | 17 | |
00be9182 | 18 | public function setUp() { |
6a488035 TO |
19 | parent::setUp(); |
20 | } | |
21 | ||
795492f3 TO |
22 | /** |
23 | * Check function add() | |
24 | */ | |
00be9182 | 25 | public function testAdd() { |
9099cab3 | 26 | $params = [ |
6a488035 TO |
27 | 'name' => 'pending', |
28 | 'is_active' => 1, | |
9099cab3 | 29 | ]; |
6a488035 | 30 | |
dd12dc87 | 31 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
6a488035 TO |
32 | |
33 | $result = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $membershipStatus->id, | |
34 | 'name', 'id', | |
35 | 'Database check on updated membership status record.' | |
36 | ); | |
37 | $this->assertEquals($result, 'pending', 'Verify membership status is_active.'); | |
38 | } | |
39 | ||
00be9182 | 40 | public function testRetrieve() { |
6a488035 | 41 | |
9099cab3 | 42 | $params = [ |
6a488035 TO |
43 | 'name' => 'testStatus', |
44 | 'is_active' => 1, | |
9099cab3 | 45 | ]; |
6a488035 | 46 | |
dd12dc87 | 47 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
9099cab3 | 48 | $defaults = []; |
92915c55 | 49 | $result = CRM_Member_BAO_MembershipStatus::retrieve($params, $defaults); |
6a488035 TO |
50 | $this->assertEquals($result->name, 'testStatus', 'Verify membership status name.'); |
51 | CRM_Member_BAO_MembershipStatus::del($membershipStatus->id); | |
52 | } | |
e587382f | 53 | |
be004bb9 | 54 | public function testPseudoConstantflush() { |
9099cab3 | 55 | $params = [ |
be004bb9 SL |
56 | 'name' => 'testStatus', |
57 | 'is_active' => 1, | |
9099cab3 | 58 | ]; |
be004bb9 | 59 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
9099cab3 | 60 | $defaults = []; |
be004bb9 SL |
61 | $result = CRM_Member_BAO_MembershipStatus::retrieve($params, $defaults); |
62 | $this->assertEquals($result->name, 'testStatus', 'Verify membership status name.'); | |
9099cab3 | 63 | $updateParams = [ |
e587382f | 64 | 'id' => $membershipStatus->id, |
615e6fb6 SL |
65 | 'name' => 'testStatus', |
66 | 'label' => 'Changed Status', | |
be004bb9 | 67 | 'is_active' => 1, |
9099cab3 | 68 | ]; |
e587382f | 69 | $membershipStatus2 = CRM_Member_BAO_MembershipStatus::add($updateParams); |
615e6fb6 | 70 | $result = CRM_Member_PseudoConstant::membershipStatus($membershipStatus->id, NULL, 'label', FALSE, FALSE); |
fd94e75e | 71 | $this->assertEquals($result, 'Changed Status', 'Verify updated membership status label From PseudoConstant.'); |
be004bb9 SL |
72 | CRM_Member_BAO_MembershipStatus::del($membershipStatus->id); |
73 | } | |
6a488035 | 74 | |
00be9182 | 75 | public function testSetIsActive() { |
6a488035 | 76 | |
9099cab3 | 77 | $params = [ |
6a488035 TO |
78 | 'name' => 'pending', |
79 | 'is_active' => 1, | |
9099cab3 | 80 | ]; |
6a488035 | 81 | |
dd12dc87 | 82 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
6a488035 TO |
83 | $result = CRM_Member_BAO_MembershipStatus::setIsActive($membershipStatus->id, 0); |
84 | $this->assertEquals($result, TRUE, 'Verify membership status record updation.'); | |
85 | ||
86 | $isActive = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $membershipStatus->id, | |
87 | 'is_active', 'id', | |
88 | 'Database check on updated membership status record.' | |
89 | ); | |
90 | $this->assertEquals($isActive, 0, 'Verify membership status is_active.'); | |
91 | } | |
92 | ||
00be9182 | 93 | public function testGetMembershipStatus() { |
9099cab3 | 94 | $params = [ |
6a488035 TO |
95 | 'name' => 'pending', |
96 | 'is_active' => 1, | |
9099cab3 | 97 | ]; |
6a488035 | 98 | |
dd12dc87 | 99 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
6a488035 TO |
100 | $result = CRM_Member_BAO_MembershipStatus::getMembershipStatus($membershipStatus->id); |
101 | $this->assertEquals($result['name'], 'pending', 'Verify membership status name.'); | |
102 | } | |
103 | ||
00be9182 | 104 | public function testDel() { |
9099cab3 | 105 | $params = [ |
6a488035 TO |
106 | 'name' => 'testStatus', |
107 | 'is_active' => 1, | |
9099cab3 | 108 | ]; |
6a488035 | 109 | |
dd12dc87 | 110 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
6a488035 | 111 | CRM_Member_BAO_MembershipStatus::del($membershipStatus->id); |
9099cab3 | 112 | $defaults = []; |
6a488035 TO |
113 | $result = CRM_Member_BAO_MembershipStatus::retrieve($params, $defaults); |
114 | $this->assertEquals(empty($result), TRUE, 'Verify membership status record deletion.'); | |
115 | } | |
116 | ||
5a433c56 | 117 | /** |
118 | * @throws \CRM_Core_Exception | |
119 | * @throws \CiviCRM_API3_Exception | |
120 | */ | |
13804457 | 121 | public function testExpiredDisabled() { |
5a433c56 | 122 | $this->callAPISuccess('MembershipStatus', 'get', [ |
123 | 'name' => 'Expired', | |
f0191689 AH |
124 | 'api.MembershipStatus.create' => ['label' => 'Expiiiired'], |
125 | ]); | |
126 | ||
127 | // Calling it 'Expiiiired' is OK. | |
5a433c56 | 128 | $this->callAPISuccess('job', 'process_membership', []); |
f0191689 | 129 | |
5a433c56 | 130 | $this->callAPISuccess('MembershipStatus', 'get', [ |
131 | 'name' => 'Expired', | |
13804457 AH |
132 | 'api.MembershipStatus.create' => ['is_active' => 0], |
133 | ]); | |
134 | ||
135 | // Disabling 'Expired' is OK. | |
5a433c56 | 136 | $this->callAPISuccess('job', 'process_membership', []); |
13804457 | 137 | |
5a433c56 | 138 | $this->callAPISuccess('MembershipStatus', 'get', [ |
139 | 'name' => 'Expired', | |
13804457 AH |
140 | 'api.MembershipStatus.delete' => [], |
141 | ]); | |
142 | ||
143 | // Deleting 'Expired' is OK. | |
5a433c56 | 144 | $this->callAPISuccess('job', 'process_membership', []); |
13804457 AH |
145 | |
146 | // Put things back like normal | |
5a433c56 | 147 | $this->callAPISuccess('MembershipStatus', 'create', [ |
13804457 AH |
148 | 'name' => 'Expired', |
149 | 'label' => 'Expired', | |
150 | 'start_event' => 'end_date', | |
151 | 'start_event_adjust_unit' => 'month', | |
152 | 'start_event_adjust_interval' => 1, | |
153 | 'is_current_member' => 0, | |
154 | 'is_admin' => 0, | |
155 | 'weight' => 4, | |
156 | 'is_default' => 0, | |
157 | 'is_active' => 1, | |
158 | 'is_reserved' => 0, | |
159 | ]); | |
160 | ||
161 | } | |
162 | ||
00be9182 | 163 | public function testGetMembershipStatusByDate() { |
9099cab3 | 164 | $params = [ |
6a488035 TO |
165 | 'name' => 'Current', |
166 | 'is_active' => 1, | |
167 | 'start_event' => 'start_date', | |
168 | 'end_event' => 'end_date', | |
9099cab3 | 169 | ]; |
6a488035 | 170 | |
dd12dc87 | 171 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
6a488035 TO |
172 | $toDate = date('Ymd'); |
173 | ||
d6910b2a | 174 | $result = CRM_Member_BAO_MembershipStatus::getMembershipStatusByDate($toDate, $toDate, $toDate, 'today', TRUE, NULL, $params); |
6a488035 TO |
175 | $this->assertEquals($result['name'], 'Current', 'Verify membership status record.'); |
176 | } | |
177 | ||
00be9182 | 178 | public function testgetMembershipStatusCurrent() { |
9099cab3 | 179 | $params = [ |
6a488035 TO |
180 | 'name' => 'Current', |
181 | 'is_active' => 1, | |
182 | 'is_current_member' => 1, | |
9099cab3 | 183 | ]; |
6a488035 | 184 | |
dd12dc87 | 185 | $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params); |
6a488035 TO |
186 | $result = CRM_Member_BAO_MembershipStatus::getMembershipStatusCurrent(); |
187 | ||
188 | $this->assertEquals(empty($result), FALSE, 'Verify membership status records is_current_member.'); | |
189 | } | |
96025800 | 190 | |
6a488035 | 191 | } |