Skip to content

Commit

Permalink
CIVIMM-263: Ensure null nextPaymentDate doesnt affect update
Browse files Browse the repository at this point in the history
  • Loading branch information
olayiwola-compucorp committed Jan 17, 2025
1 parent 2d99b31 commit 05dc053
Showing 1 changed file with 25 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,31 @@ public function testNoMandateWillBeCreatedIfAnyMainMandateFieldIsMissing() {
}
}

public function testExternalMandateWillGetUpdatedIfRecurContributionAlreadyHasMandateWithNoNextDate() {
$firstImporterRowData = [
'external_direct_debit_mandate_id' => 'TEST_X13',
'external_direct_debit_mandate_status' => 1,
'external_direct_debit_next_available_payment_date' => '20230101000000',
];
$mandateImporter = new ExternalDirectDebitMandateImporter($firstImporterRowData, $this->recurContributionId);
$firstImportMandateId = $mandateImporter->import();

$secondImporterRowData = [
'external_direct_debit_mandate_id' => 'TEST_X13',
'external_direct_debit_mandate_status' => 0,
];
$mandateImporter = new ExternalDirectDebitMandateImporter($secondImporterRowData, $this->recurContributionId);
$secondImportMandateId = $mandateImporter->import();

$newMandate = $this->getExternalMandateById($secondImportMandateId);
$this->assertEquals($firstImportMandateId, $secondImportMandateId);
$this->assertEquals($secondImporterRowData['external_direct_debit_mandate_id'], $newMandate['mandate_id']);
$this->assertEquals($secondImporterRowData['external_direct_debit_mandate_status'], $newMandate['mandate_status']);

$expectedDate = DateTime::createFromFormat('YmdHis', $firstImporterRowData['external_direct_debit_next_available_payment_date']);
$this->assertEquals($expectedDate->format('Y-m-d H:i:s'), $newMandate['next_available_payment_date']);
}

private function getExternalMandateById($mandateId) {
$sql = "SELECT * FROM civicrm_value_external_dd_mandate_information WHERE id = {$mandateId}";
$dao = CRM_Core_DAO::executeQuery($sql);
Expand Down

0 comments on commit 05dc053

Please sign in to comment.