From e021e985fe46d5141c418c5ca9225aa37398e31a Mon Sep 17 00:00:00 2001 From: eileen Date: Sat, 12 Sep 2020 10:02:12 +1200 Subject: [PATCH] [REF] minor tidy up on membershipStatus::create & add We have been deprecating & removing the array from BAO create & add actions - this continues that (long slow) process' --- CRM/Member/BAO/MembershipStatus.php | 23 +++---- .../CRM/Member/BAO/MembershipStatusTest.php | 69 ++++++++----------- 2 files changed, 40 insertions(+), 52 deletions(-) diff --git a/CRM/Member/BAO/MembershipStatus.php b/CRM/Member/BAO/MembershipStatus.php index 6dd327e5b0..de34eec198 100644 --- a/CRM/Member/BAO/MembershipStatus.php +++ b/CRM/Member/BAO/MembershipStatus.php @@ -68,26 +68,21 @@ class CRM_Member_BAO_MembershipStatus extends CRM_Member_DAO_MembershipStatus { * 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); } /** @@ -98,10 +93,12 @@ class CRM_Member_BAO_MembershipStatus extends CRM_Member_DAO_MembershipStatus { * @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()); diff --git a/tests/phpunit/CRM/Member/BAO/MembershipStatusTest.php b/tests/phpunit/CRM/Member/BAO/MembershipStatusTest.php index e33f916c9a..f413ffd22b 100644 --- a/tests/phpunit/CRM/Member/BAO/MembershipStatusTest.php +++ b/tests/phpunit/CRM/Member/BAO/MembershipStatusTest.php @@ -15,8 +15,13 @@ */ 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(); } /** @@ -24,33 +29,27 @@ class CRM_Member_BAO_MembershipStatusTest extends CiviUnitTestCase { */ 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() { @@ -58,66 +57,58 @@ class CRM_Member_BAO_MembershipStatusTest extends CiviUnitTestCase { '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.'); } /** -- 2.25.1