[REF] minor tidy up on membershipStatus::create & add
authoreileen <emcnaughton@wikimedia.org>
Fri, 11 Sep 2020 22:02:12 +0000 (10:02 +1200)
committereileen <emcnaughton@wikimedia.org>
Fri, 11 Sep 2020 22:02:12 +0000 (10:02 +1200)
We have been deprecating & removing the  array from BAO create & add actions - this continues that
(long slow) process'

CRM/Member/BAO/MembershipStatus.php
tests/phpunit/CRM/Member/BAO/MembershipStatusTest.php

index 6dd327e5b076577d9f67a22a4c6a1437e8cab06a..de34eec198010137e2795c555ed21cc0d6277921 100644 (file)
@@ -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());
index e33f916c9aa65192243e45b2d3d3ebfcd2891b66..f413ffd22b7c4dba4b5078cda9b6cd1795bdfcd6 100644 (file)
  */
 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.');
   }
 
   /**