3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
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 |
9 +--------------------------------------------------------------------+
13 * Class CRM_Member_BAO_MembershipStatusTest
16 class CRM_Member_BAO_MembershipStatusTest
extends CiviUnitTestCase
{
18 public function setUp() {
23 * Check function add()
25 public function testAdd() {
31 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
33 $result = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $membershipStatus->id
,
35 'Database check on updated membership status record.'
37 $this->assertEquals($result, 'pending', 'Verify membership status is_active.');
40 public function testRetrieve() {
43 'name' => 'testStatus',
47 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
49 $result = CRM_Member_BAO_MembershipStatus
::retrieve($params, $defaults);
50 $this->assertEquals($result->name
, 'testStatus', 'Verify membership status name.');
51 CRM_Member_BAO_MembershipStatus
::del($membershipStatus->id
);
54 public function testPseudoConstantflush() {
56 'name' => 'testStatus',
59 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
61 $result = CRM_Member_BAO_MembershipStatus
::retrieve($params, $defaults);
62 $this->assertEquals($result->name
, 'testStatus', 'Verify membership status name.');
64 'id' => $membershipStatus->id
,
65 'name' => 'testStatus',
66 'label' => 'Changed Status',
69 $membershipStatus2 = CRM_Member_BAO_MembershipStatus
::add($updateParams);
70 $result = CRM_Member_PseudoConstant
::membershipStatus($membershipStatus->id
, NULL, 'label', FALSE, FALSE);
71 $this->assertEquals($result, 'Changed Status', 'Verify updated membership status label From PseudoConstant.');
72 CRM_Member_BAO_MembershipStatus
::del($membershipStatus->id
);
75 public function testSetIsActive() {
82 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
83 $result = CRM_Member_BAO_MembershipStatus
::setIsActive($membershipStatus->id
, 0);
84 $this->assertEquals($result, TRUE, 'Verify membership status record updation.');
86 $isActive = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $membershipStatus->id
,
88 'Database check on updated membership status record.'
90 $this->assertEquals($isActive, 0, 'Verify membership status is_active.');
93 public function testGetMembershipStatus() {
99 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
100 $result = CRM_Member_BAO_MembershipStatus
::getMembershipStatus($membershipStatus->id
);
101 $this->assertEquals($result['name'], 'pending', 'Verify membership status name.');
104 public function testDel() {
106 'name' => 'testStatus',
110 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
111 CRM_Member_BAO_MembershipStatus
::del($membershipStatus->id
);
113 $result = CRM_Member_BAO_MembershipStatus
::retrieve($params, $defaults);
114 $this->assertEquals(empty($result), TRUE, 'Verify membership status record deletion.');
118 * @throws \CRM_Core_Exception
119 * @throws \CiviCRM_API3_Exception
121 public function testExpiredDisabled() {
122 $this->callAPISuccess('MembershipStatus', 'get', [
124 'api.MembershipStatus.create' => ['label' => 'Expiiiired'],
127 // Calling it 'Expiiiired' is OK.
128 $this->callAPISuccess('job', 'process_membership', []);
130 $this->callAPISuccess('MembershipStatus', 'get', [
132 'api.MembershipStatus.create' => ['is_active' => 0],
135 // Disabling 'Expired' is OK.
136 $this->callAPISuccess('job', 'process_membership', []);
138 $this->callAPISuccess('MembershipStatus', 'get', [
140 'api.MembershipStatus.delete' => [],
143 // Deleting 'Expired' is OK.
144 $this->callAPISuccess('job', 'process_membership', []);
146 // Put things back like normal
147 $this->callAPISuccess('MembershipStatus', 'create', [
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,
163 public function testGetMembershipStatusByDate() {
167 'start_event' => 'start_date',
168 'end_event' => 'end_date',
171 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
172 $toDate = date('Ymd');
174 $result = CRM_Member_BAO_MembershipStatus
::getMembershipStatusByDate($toDate, $toDate, $toDate, 'today', TRUE, NULL, $params);
175 $this->assertEquals($result['name'], 'Current', 'Verify membership status record.');
178 public function testgetMembershipStatusCurrent() {
182 'is_current_member' => 1,
185 $membershipStatus = CRM_Member_BAO_MembershipStatus
::add($params);
186 $result = CRM_Member_BAO_MembershipStatus
::getMembershipStatusCurrent();
188 $this->assertEquals(empty($result), FALSE, 'Verify membership status records is_current_member.');