Merge pull request #19017 from eileenmcnaughton/remove_recur
[civicrm-core.git] / tests / phpunit / api / v3 / ContributionTest.php
index c5f821a93c04da338df36bc7022e090c4fb448e3..22da640db652f4344f56fcacf8949264ce596c14 100644 (file)
@@ -3433,9 +3433,14 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
   }
 
   /**
-   * Test if renewal activity is create after changing Pending contribution to Completed via offline
+   * Test if renewal activity is create after changing Pending contribution to
+   * Completed via offline
+   *
+   * @throws \CRM_Core_Exception
+   * @throws \CRM_Core_Exception
+   * @throws \CiviCRM_API3_Exception
    */
-  public function testPendingToCompleteContribution() {
+  public function testPendingToCompleteContribution(): void {
     $this->createPriceSetWithPage('membership');
     $this->setUpPendingContribution($this->_ids['price_field_value'][0]);
     $this->callAPISuccess('membership', 'getsingle', ['id' => $this->_ids['membership']]);
@@ -3506,7 +3511,9 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
     ]);
     $this->assertEquals(1, $activity['count']);
     $this->assertEquals('Status changed from Grace to Current', $activity['values'][$activity['id']]['subject']);
-
+    $membershipLogs = $this->callAPISuccess('MembershipLog', 'get', ['sequential' => 1])['values'];
+    $this->assertEquals('Grace', CRM_Core_PseudoConstant::getName('CRM_Member_BAO_Membership', 'status_id', $membershipLogs[0]['status_id']));
+    $this->assertEquals('Current', CRM_Core_PseudoConstant::getName('CRM_Member_BAO_Membership', 'status_id', $membershipLogs[1]['status_id']));
     //Create another pending contribution for renewal
     $contribution = $this->callAPISuccess('contribution', 'create', [
       'domain_id' => 1,
@@ -3557,7 +3564,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
     $form->testSubmit($form->_params, CRM_Core_Action::UPDATE);
     //Existing membership should not get updated to expired.
     $membership = $this->callAPISuccess('membership', 'getsingle', ['id' => $this->_ids['membership']]);
-    $this->assertNotEquals($membership['status_id'], 4);
+    $this->assertNotEquals(4, $membership['status_id']);
   }
 
   /**
@@ -3752,7 +3759,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
     ], [
       'Event',
     ]);
-    $this->checkReceiptDetails($mut, $contributionPage['id'], $contribution['id']);
+    $this->checkReceiptDetails($mut, $contributionPage['id'], $contribution['id'], $pageParams);
     $mut->stop();
   }
 
@@ -3787,21 +3794,24 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
    * @param CiviMailUtils $mut
    * @param int $pageID Page ID
    * @param int $contributionID Contribution ID
+   * @param array $pageParams
    *
    * @throws \CRM_Core_Exception
    */
-  public function checkReceiptDetails($mut, $pageID, $contributionID) {
+  public function checkReceiptDetails($mut, $pageID, $contributionID, $pageParams) {
     $pageReceipt = [
       'receipt_from_name' => "Page FromName",
       'receipt_from_email' => "page_from@email.com",
       'cc_receipt' => "page_cc@email.com",
       'receipt_text' => "Page Receipt Text",
+      'pay_later_receipt' => $pageParams['pay_later_receipt'],
     ];
     $customReceipt = [
       'receipt_from_name' => "Custom FromName",
       'receipt_from_email' => "custom_from@email.com",
       'cc_receipt' => "custom_cc@email.com",
       'receipt_text' => "Test Custom Receipt Text",
+      'pay_later_receipt' => 'Mail your check to test@example.com within 3 business days.',
     ];
     $this->callAPISuccess('ContributionPage', 'create', array_merge([
       'id' => $pageID,
@@ -3814,6 +3824,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
     ], $customReceipt));
 
     //Verify if custom receipt details are present in email.
+    //Page receipt details shouldn't be included.
     $mut->checkMailLog(array_values($customReceipt), array_values($pageReceipt));
   }
 
@@ -4718,7 +4729,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
       'is_reserved' => 0,
       'is_active' => 1,
     ]);
-    $this->relationForFinancialTypeWithFinancialAccount($financialType['id']);
+    $this->addTaxAccountToFinancialType($financialType['id']);
     $contribution = $this->setUpRepeatTransaction(
       [],
       'single',