* Takes an associative array and creates a membership Status object.
*
* @param array $params
- * (reference ) an assoc array of name/value pairs.
+ * Array of name/value pairs.
*
- * @throws Exception
- * @return CRM_Member_BAO_MembershipStatus
+ * @throws CRM_Core_Exception
+ * @return CRM_Member_DAO_MembershipStatus
*/
public static function create($params) {
- $ids = [];
- if (!empty($params['id'])) {
- $ids['membershipStatus'] = $params['id'];
- }
- else {
+ if (empty($params['id'])) {
//don't allow duplicate names - if id not set
$status = new CRM_Member_DAO_MembershipStatus();
$status->name = $params['name'];
if ($status->find(TRUE)) {
- throw new Exception('A membership status with this name already exists.');
+ throw new CRM_Core_Exception('A membership status with this name already exists.');
}
}
- $membershipStatusBAO = CRM_Member_BAO_MembershipStatus::add($params, $ids);
- return $membershipStatusBAO;
+ return self::add($params);
}
/**
* @param array $ids
* Array contains the id - this param is deprecated.
*
- *
- * @return object
+ * @return CRM_Member_DAO_MembershipStatus
*/
public static function add(&$params, $ids = []) {
+ if (!empty($ids)) {
+ CRM_Core_Error::deprecatedFunctionWarning('ids is a deprecated parameter');
+ }
$id = $params['id'] ?? $ids['membershipStatus'] ?? NULL;
if (!$id) {
CRM_Core_DAO::setCreateDefaults($params, self::getDefaults());
*/
class CRM_Member_BAO_MembershipStatusTest extends CiviUnitTestCase {
- public function setUp() {
- parent::setUp();
+ protected function tearDown() {
+ foreach ($this->ids as $entity => $ids) {
+ foreach ($ids as $id) {
+ $this->callAPISuccess($entity, 'Delete', ['id' => $id]);
+ }
+ }
+ parent::tearDown();
}
/**
*/
public function testAdd() {
$params = [
- 'name' => 'pending',
+ 'name' => 'added',
'is_active' => 1,
];
- $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params);
+ $this->ids['MembershipStatus'][0] = $this->callAPISuccess('MembershipStatus', 'create', $params)['id'];
- $result = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $membershipStatus->id,
+ $result = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $this->ids['MembershipStatus'][0],
'name', 'id',
'Database check on updated membership status record.'
);
- $this->assertEquals($result, 'pending', 'Verify membership status is_active.');
-
- $this->callAPISuccess('MembershipStatus', 'Delete', ['id' => $membershipStatus->id]);
+ $this->assertEquals($result, 'added', 'Verify membership status is_active.');
}
public function testRetrieve() {
- $params = [
- 'name' => 'testStatus',
- 'is_active' => 1,
- ];
+ $params = ['name' => 'testStatus', 'is_active' => 1];
- $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params);
+ $this->ids['MembershipStatus'][0] = $this->callAPISuccess('MembershipStatus', 'create', $params)['id'];
$defaults = [];
$result = CRM_Member_BAO_MembershipStatus::retrieve($params, $defaults);
$this->assertEquals($result->name, 'testStatus', 'Verify membership status name.');
- CRM_Member_BAO_MembershipStatus::del($membershipStatus->id);
}
public function testPseudoConstantflush() {
'name' => 'testStatus',
'is_active' => 1,
];
- $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params);
+ $this->ids['MembershipStatus'][0] = $this->callAPISuccess('MembershipStatus', 'create', $params)['id'];
$defaults = [];
$result = CRM_Member_BAO_MembershipStatus::retrieve($params, $defaults);
$this->assertEquals($result->name, 'testStatus', 'Verify membership status name.');
$updateParams = [
- 'id' => $membershipStatus->id,
+ 'id' => $this->ids['MembershipStatus'][0],
'name' => 'testStatus',
'label' => 'Changed Status',
'is_active' => 1,
];
- $membershipStatus2 = CRM_Member_BAO_MembershipStatus::add($updateParams);
- $result = CRM_Member_PseudoConstant::membershipStatus($membershipStatus->id, NULL, 'label', FALSE, FALSE);
+ $this->callAPISuccess('MembershipStatus', 'create', $updateParams)['id'];
+ $result = CRM_Member_PseudoConstant::membershipStatus($this->ids['MembershipStatus'][0], NULL, 'label', FALSE, FALSE);
$this->assertEquals($result, 'Changed Status', 'Verify updated membership status label From PseudoConstant.');
- CRM_Member_BAO_MembershipStatus::del($membershipStatus->id);
}
public function testSetIsActive() {
$params = [
- 'name' => 'pending',
+ 'name' => 'added',
'is_active' => 1,
];
- $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params);
- $result = CRM_Member_BAO_MembershipStatus::setIsActive($membershipStatus->id, 0);
- $this->assertEquals($result, TRUE, 'Verify membership status record updation.');
+ $this->ids['MembershipStatus'][0] = $this->callAPISuccess('MembershipStatus', 'create', $params)['id'];
+ $result = CRM_Member_BAO_MembershipStatus::setIsActive($this->ids['MembershipStatus'][0], 0);
+ $this->assertEquals($result, TRUE, 'Verify membership status record updated.');
- $isActive = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $membershipStatus->id,
+ $isActive = $this->assertDBNotNull('CRM_Member_BAO_MembershipStatus', $this->ids['MembershipStatus'][0],
'is_active', 'id',
'Database check on updated membership status record.'
);
$this->assertEquals($isActive, 0, 'Verify membership status is_active.');
-
- $this->callAPISuccess('MembershipStatus', 'Delete', ['id' => $membershipStatus->id]);
}
public function testGetMembershipStatus() {
$params = [
- 'name' => 'pending',
+ 'name' => 'added',
'is_active' => 1,
];
- $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params);
- $result = CRM_Member_BAO_MembershipStatus::getMembershipStatus($membershipStatus->id);
- $this->assertEquals($result['name'], 'pending', 'Verify membership status name.');
-
- $this->callAPISuccess('MembershipStatus', 'Delete', ['id' => $membershipStatus->id]);
+ $this->ids['MembershipStatus'][0] = $this->callAPISuccess('MembershipStatus', 'create', $params)['id'];
+ $result = CRM_Member_BAO_MembershipStatus::getMembershipStatus($this->ids['MembershipStatus'][0]);
+ $this->assertEquals($result['name'], 'added', 'Verify membership status name.');
}
public function testDel() {
- $params = [
- 'name' => 'testStatus',
- 'is_active' => 1,
- ];
+ $params = ['name' => 'testStatus', 'is_active' => 1];
- $membershipStatus = CRM_Member_BAO_MembershipStatus::add($params);
- CRM_Member_BAO_MembershipStatus::del($membershipStatus->id);
+ $membershipID = $this->callAPISuccess('MembershipStatus', 'create', $params)['id'];
+ CRM_Member_BAO_MembershipStatus::del($membershipID);
$defaults = [];
$result = CRM_Member_BAO_MembershipStatus::retrieve($params, $defaults);
- $this->assertEquals(empty($result), TRUE, 'Verify membership status record deletion.');
+ $this->assertEquals($result === NULL, TRUE, 'Verify membership status record deletion.');
}
/**