Merge pull request #20649 from eileenmcnaughton/mem_clean
authorSeamus Lee <seamuslee001@gmail.com>
Fri, 18 Jun 2021 21:15:23 +0000 (07:15 +1000)
committerGitHub <noreply@github.com>
Fri, 18 Jun 2021 21:15:23 +0000 (07:15 +1000)
[NFC] [Test] Cleanup on membership type test

Civi/Test/Api3TestTrait.php
tests/phpunit/api/v3/MembershipTest.php

index 4fb4c3731fa42ca052d53f007e9d27ef98143f97..c704b30b8d817c144e8688ca3de845d0862e9e40 100644 (file)
@@ -218,8 +218,6 @@ trait Api3TestTrait {
    *   - array
    *   - object
    *
-   * @throws \CRM_Core_Exception
-   *
    * @return array|int
    */
   public function callAPISuccessGetSingle($entity, $params, $checkAgainst = NULL) {
@@ -229,7 +227,7 @@ trait Api3TestTrait {
     $result = $this->civicrm_api($entity, 'getsingle', $params);
     if (!is_array($result) || !empty($result['is_error']) || isset($result['values'])) {
       $unfilteredResult = $this->civicrm_api($entity, 'get', ['version' => $this->_apiversion]);
-      throw new \CRM_Core_Exception(
+      $this->fail(
         'Invalid getsingle result' . print_r($result, TRUE)
         . "\n entity: $entity . \n params \n " . print_r($params, TRUE)
         . "\n entities retrieved with blank params \n" . print_r($unfilteredResult, TRUE)
index 6bb625f1e319d9db85005b868fdeac7dfce4e3d5..f8f8e026dae36c6d47f3e7a9948593915cd413dd 100644 (file)
@@ -61,7 +61,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
     $this->_entity = 'Membership';
     $this->_params = [
       'contact_id' => $this->_contactID,
-      'membership_type_id' => $this->_membershipTypeID,
+      'membership_type_id' => 'General',
       'join_date' => '2009-01-21',
       'start_date' => '2009-01-21',
       'end_date' => '2009-12-21',
@@ -78,15 +78,25 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
    */
   public function tearDown(): void {
     $this->quickCleanUpFinancialEntities();
-    $this->quickCleanup(['civicrm_uf_match'], TRUE);
-    $this->contactDelete($this->_contactID);
+    $this->quickCleanup(['civicrm_uf_match', 'civicrm_contact'], TRUE);
     parent::tearDown();
   }
 
+  /**
+   * Get the id for the given type.
+   *
+   * @param string $name
+   *
+   * @return int
+   */
+  public function getMembershipTypeID(string $name): int {
+    return CRM_Core_PseudoConstant::getKey('CRM_Member_BAO_Membership', 'membership_type_id', $name);
+  }
+
   /**
    * Test membership deletion.
    */
-  public function testMembershipDelete() {
+  public function testMembershipDelete(): void {
     $membershipID = $this->contactMembershipCreate($this->_params);
     $this->assertDBRowExist('CRM_Member_DAO_Membership', $membershipID);
     $params = [
@@ -182,7 +192,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
     $newMembershipId = array_search('test status', $memStatus);
 
     $membershipParam = [
-      'membership_type_id' => $this->_membershipTypeID,
+      'membership_type_id' => 'General',
       'source' => 'Webform Payment',
       'status_id' => $pendingMembershipId,
       'is_pay_later' => 1,
@@ -247,8 +257,8 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
       CRM_Core_Action::UPDATE);
 
     // check for Membership 1
-    $params = ['id' => $membershipID1];
-    $membership1 = $this->callAPISuccess('membership', 'get', $params);
+    $params = ['id' => $membershipID1, 'return' => ['contact_id', 'status_id']];
+    $membership1 = $this->callAPISuccess('Membership', 'get', $params);
     $result1 = $membership1['values'][$membershipID1];
     $this->assertEquals($result1['contact_id'], $contactId1);
     $this->assertEquals($result1['status_id'], $newMembershipId);
@@ -286,21 +296,19 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
     $this->_membershipID = $this->contactMembershipCreate($this->_params);
     $params = [
       'contact_id' => $this->_contactID,
+      'return' => array_keys($this->_params),
     ];
     $membership = $this->callAPISuccess('membership', 'get', $params);
 
     $result = $membership['values'][$this->_membershipID];
-    $this->callAPISuccess('Membership', 'Delete', [
-      'id' => $this->_membershipID,
-    ]);
     $this->assertEquals($result['contact_id'], $this->_contactID);
-    $this->assertEquals($result['membership_type_id'], $this->_membershipTypeID);
+    $this->assertEquals($this->getMembershipTypeID('General'), $result['membership_type_id']);
     $this->assertEquals($result['status_id'], $this->_membershipStatusID);
     $this->assertEquals($result['join_date'], '2009-01-21');
     $this->assertEquals($result['start_date'], '2009-01-21');
     $this->assertEquals($result['end_date'], '2009-12-21');
     $this->assertEquals($result['source'], 'Payment');
-    $this->assertEquals($result['is_override'], 1);
+    $this->assertEquals(1, $result['is_override']);
   }
 
   /**
@@ -355,18 +363,16 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
    *
    * Gets treated as contact_id, memberships expected.
    */
-  public function testGetWithParamsMemberShipTypeId() {
+  public function testGetWithParamsMemberShipTypeId(): void {
     $this->callAPISuccess($this->_entity, 'create', $this->_params);
     $params = [
-      'membership_type_id' => $this->_membershipTypeID,
+      'membership_type_id' => 'General',
+      'return' => array_keys($this->_params),
     ];
     $membership = $this->callAPISuccess('membership', 'get', $params);
-    $this->callAPISuccess('Membership', 'Delete', [
-      'id' => $membership['id'],
-    ]);
     $result = $membership['values'][$membership['id']];
     $this->assertEquals($result['contact_id'], $this->_contactID);
-    $this->assertEquals($result['membership_type_id'], $this->_membershipTypeID);
+    $this->assertEquals($this->getMembershipTypeID('General'), $result['membership_type_id']);
     $this->assertEquals($result['status_id'], $this->_membershipStatusID);
     $this->assertEquals($result['join_date'], '2009-01-21');
     $this->assertEquals($result['start_date'], '2009-01-21');
@@ -390,15 +396,14 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
       'membership_type_id' => $this->_membershipTypeID,
       'contact_id' => $this->_contactID,
     ];
-    $result = $this->callAPISuccess('membership', 'getsingle', $params);
-    $this->assertEquals($result['contact_id'], $this->_contactID);
-    $this->assertEquals($result['membership_type_id'], $this->_membershipTypeID);
+    $this->callAPISuccessGetCount('Membership', $params, 1);
 
     $params = [
       'membership_type_id' => $this->_membershipTypeID2,
       'contact_id' => $this->_contactID,
+      'return' => ['membership_type_id', 'contact_id'],
     ];
-    $result = $this->callAPISuccess('membership', 'getsingle', $params);
+    $result = $this->callAPISuccessGetSingle('Membership', $params);
     $this->assertEquals($result['contact_id'], $this->_contactID);
     $this->assertEquals($result['membership_type_id'], $this->_membershipTypeID2);
   }
@@ -410,21 +415,17 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
    * variables specific to participant so it can be replicated into other entities
    * and / or moved to the automated test suite
    */
-  public function testGetWithParamsMemberShipIdAndCustom() {
+  public function testGetWithParamsMemberShipIdAndCustom(): void {
     $ids = $this->entityCustomGroupWithSingleFieldCreate(__FUNCTION__, __FILE__);
 
     $params = $this->_params;
-    $params['custom_' . $ids['custom_field_id']] = "custom string";
+    $params['custom_' . $ids['custom_field_id']] = 'custom string';
 
     $result = $this->callAPISuccess($this->_entity, 'create', $params);
 
-    $getParams = ['membership_type_id' => $params['membership_type_id']];
+    $getParams = ['membership_type_id' => $params['membership_type_id'], 'return' => 'custom_' . $ids['custom_field_id']];
     $check = $this->callAPIAndDocument($this->_entity, 'get', $getParams, __FUNCTION__, __FILE__);
-    $this->assertEquals("custom string", $check['values'][$result['id']]['custom_' . $ids['custom_field_id']], ' in line ' . __LINE__);
-
-    $this->callAPISuccess('Membership', 'Delete', [
-      'id' => $result['id'],
-    ]);
+    $this->assertEquals('custom string', $check['values'][$result['id']]['custom_' . $ids['custom_field_id']]);
   }
 
   /**
@@ -432,19 +433,16 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
    * Memberships expected.
    */
   public function testGet() {
-    $membershipID = $this->contactMembershipCreate($this->_params);
+    $this->contactMembershipCreate($this->_params);
     $params = [
       'contact_id' => $this->_contactID,
+      'return' => array_keys($this->_params),
     ];
 
-    $membership = $this->callAPISuccess('membership', 'get', $params);
-    $result = $membership['values'][$membershipID];
-    $this->callAPISuccess('Membership', 'Delete', [
-      'id' => $membership['id'],
-    ]);
-    $this->assertEquals($result['join_date'], '2009-01-21');
+    $result = $this->callAPISuccessGetSingle('Membership', $params);
+    $this->assertEquals('2009-01-21', $result['join_date']);
     $this->assertEquals($result['contact_id'], $this->_contactID);
-    $this->assertEquals($result['membership_type_id'], $this->_membershipTypeID);
+    $this->assertEquals($result['membership_type_id'], $this->getMembershipTypeID('General'));
     $this->assertEquals($result['status_id'], $this->_membershipStatusID);
 
     $this->assertEquals($result['start_date'], '2009-01-21');
@@ -879,7 +877,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
   public function testMembershipCreate() {
     $params = [
       'contact_id' => $this->_contactID,
-      'membership_type_id' => $this->_membershipTypeID,
+      'membership_type_id' => $this->getMembershipTypeID('General'),
       'join_date' => '2006-01-21',
       'start_date' => '2006-01-21',
       'end_date' => '2006-12-21',
@@ -898,10 +896,10 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
   /**
    * Check for useful message if contact doesn't exist
    */
-  public function testMembershipCreateWithInvalidContact() {
+  public function testMembershipCreateWithInvalidContact(): void {
     $params = [
       'contact_id' => 999,
-      'membership_type_id' => $this->_membershipTypeID,
+      'membership_type_id' => 'General',
       'join_date' => '2006-01-21',
       'start_date' => '2006-01-21',
       'end_date' => '2006-12-21',
@@ -955,7 +953,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
   /**
    * Search on custom field value.
    */
-  public function testSearchWithCustomDataCRM16036() {
+  public function testSearchWithCustomDataCRM16036(): void {
     // Create a custom field on membership
     $ids = $this->entityCustomGroupWithSingleFieldCreate(__FUNCTION__, __FILE__);
 
@@ -974,15 +972,8 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
     // Since we did not touch the custom field of any membership,
     // this should not return any results.
     $check = $this->callAPISuccess($this->_entity, 'get', [
-      'custom_' . $ids['custom_field_id'] => "CRM-16036",
-    ]);
-
-    // Cleanup.
-    $this->callAPISuccess($this->_entity, 'delete', [
-      'id' => $result['id'],
+      'custom_' . $ids['custom_field_id'] => 'CRM-16036',
     ]);
-
-    // Assert.
     $this->assertEquals(0, $check['count']);
   }
 
@@ -996,7 +987,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
     $params = [
       'id' => $membershipID,
       'contact_id' => $this->_contactID,
-      'membership_type_id' => $this->_membershipTypeID,
+      'membership_type_id' => 'General',
       'join_date' => '2006-01-21',
       'start_date' => '2006-01-21',
       'end_date' => '2006-12-21',
@@ -1237,7 +1228,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
    * membership).
    * Success expected.
    */
-  public function testMembershipCreateValidMembershipTypeString() {
+  public function testMembershipCreateValidMembershipTypeString(): void {
     $params = [
       'membership_contact_id' => $this->_contactID,
       'membership_type_id' => 'General',
@@ -1250,10 +1241,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase {
     ];
 
     $result = $this->callAPISuccess('membership', 'create', $params);
-    $this->assertEquals($this->_membershipTypeID, $result['values'][$result['id']]['membership_type_id']);
-    $this->callAPISuccess('Membership', 'Delete', [
-      'id' => $result['id'],
-    ]);
+    $this->assertEquals($this->getMembershipTypeID('General'), $result['values'][$result['id']]['membership_type_id']);
   }
 
   /**