3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
6 | Use of this source code is governed by the AGPL license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
13 * Class CRM_Contribute_Form_Task_StatusTest
15 class CRM_Contribute_Form_Task_StatusTest
extends CiviUnitTestCase
{
17 protected $_individualId;
20 * Clean up after each test.
22 public function tearDown(): void
{
23 $this->quickCleanUpFinancialEntities();
24 CRM_Utils_Hook
::singleton()->reset();
28 * Test update pending contribution with sending a confirmation mail.
30 * @throws \CiviCRM_API3_Exception
31 * @throws \CRM_Core_Exception
34 public function testUpdatePendingContributionWithSendingEmail(): void
{
35 $this->_individualId
= $this->individualCreate();
36 $form = new CRM_Contribute_Form_Task_Status();
38 $mut = new CiviMailUtils($this, TRUE);
39 $mut->clearMessages();
41 // create a pending contribution
42 $contributionParams = [
43 'contact_id' => $this->_individualId
,
44 'total_amount' => 100,
45 'financial_type_id' => 'Donation',
46 'contribution_status_id' => 2,
48 $contribution = $this->callAPISuccess('Contribution', 'create', $contributionParams);
49 $contributionId = $contribution['id'];
50 $form->setContributionIds([$contributionId]);
52 $form->buildQuickForm();
55 "is_email_receipt" => '1',
56 "contribution_status_id" => 1,
57 "trxn_id_{$contributionId}" => NULL,
58 "check_number_{$contributionId}" => NULL,
59 "fee_amount_{$contributionId}" => 0,
60 "trxn_date_{$contributionId}" => date('m/d/Y'),
61 "payment_instrument_id_{$contributionId}" => 4,
64 CRM_Contribute_Form_Task_Status
::processForm($form, $params);
66 $contribution = $this->callAPISuccess('Contribution', 'get', ['id' => $contributionId]);
67 $updatedContribution = $contribution['values'][1];
69 $this->assertEquals('', $updatedContribution['contribution_source']);
70 $this->assertEquals(date("Y-m-d"), date("Y-m-d", strtotime($updatedContribution['receive_date'])));
71 $this->assertNotEquals("00:00:00", date("H:i:s", strtotime($updatedContribution['receive_date'])));
72 $this->assertEquals('Completed', $updatedContribution['contribution_status']);
74 $msg = $mut->getMostRecentEmail();
75 $this->assertNotEmpty($msg);
80 * Test update pending contribution without sending a confirmation mail.
82 public function testUpdatePendingContributionWithoutSendingEmail() {
83 $this->_individualId
= $this->individualCreate();
84 $form = new CRM_Contribute_Form_Task_Status();
86 $mut = new CiviMailUtils($this, TRUE);
87 $mut->clearMessages();
89 // create a pending contribution
90 $contributionParams = [
91 'contact_id' => $this->_individualId
,
92 'total_amount' => 100,
93 'financial_type_id' => 'Donation',
94 'contribution_status_id' => 2,
96 $contribution = $this->callAPISuccess('Contribution', 'create', $contributionParams);
97 $contributionId = $contribution['id'];
98 $form->setContributionIds([$contributionId]);
100 $form->buildQuickForm();
103 "is_email_receipt" => '0',
104 "contribution_status_id" => 1,
105 "trxn_id_{$contributionId}" => NULL,
106 "check_number_{$contributionId}" => NULL,
107 "fee_amount_{$contributionId}" => 0,
108 "trxn_date_{$contributionId}" => date('m/d/Y'),
109 "payment_instrument_id_{$contributionId}" => 4,
112 CRM_Contribute_Form_Task_Status
::processForm($form, $params);
114 $contribution = $this->callAPISuccess('Contribution', 'get', ['id' => $contributionId]);
115 $updatedContribution = $contribution['values'][1];
117 $this->assertEquals('', $updatedContribution['contribution_source']);
118 $this->assertEquals(date("Y-m-d"), date("Y-m-d", strtotime($updatedContribution['receive_date'])));
119 $this->assertNotEquals("00:00:00", date("H:i:s", strtotime($updatedContribution['receive_date'])));
120 $this->assertEquals('Completed', $updatedContribution['contribution_status']);
122 $mut->assertMailLogEmpty();