From 2a4a2f0064b08ba4543318dc4e37b60c7a1077e2 Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Tue, 3 Jan 2017 19:47:39 +0530 Subject: [PATCH] CRM-19585, added test for createProportionalFinancialEntries ---------------------------------------- * CRM-19585: Sales tax issue https://issues.civicrm.org/jira/browse/CRM-19585 --- .../CRM/Contribute/BAO/ContributionTest.php | 46 +++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php b/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php index a1e68638de..7f3ccdaf31 100644 --- a/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php +++ b/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php @@ -1088,7 +1088,7 @@ WHERE eft.entity_id = %1 AND ft.to_financial_account_id <> %2"; * Test for function createProportionalEntry(). */ public function testcreateProportionalEntry() { - $contribution = $this->createContributionWithTax(); + list($contribution, $financialAccount) = $this->createContributionWithTax(); $params = array( 'total_amount' => 55, 'to_financial_account_id' => $financialAccount->financial_account_id, @@ -1126,7 +1126,7 @@ WHERE eft.entity_id = %1 AND ft.to_financial_account_id <> %2"; * Test for function getLastFinancialItemIds(). */ public function testgetLastFinancialItemIds() { - $contribution = $this->createContributionWithTax(); + list($contribution, $financialAccount) = $this->createContributionWithTax(); list($ftIds, $taxItems) = CRM_Contribute_BAO_Contribution::getLastFinancialItemIds($contribution['id']); $this->assertEquals(count($ftIds), 1, 'Invalid count.'); $this->assertEquals(count($taxItems), 1, 'Invalid count.'); @@ -1135,6 +1135,46 @@ WHERE eft.entity_id = %1 AND ft.to_financial_account_id <> %2"; } } + /** + * Test for function createProportionalFinancialEntries(). + */ + public function testcreateProportionalFinancialEntries() { + list($contribution, $financialAccount) = $this->createContributionWithTax(); + $params = array( + 'total_amount' => 55, + 'to_financial_account_id' => $financialAccount->financial_account_id, + 'payment_instrument_id' => 1, + 'trxn_date' => date('Ymd'), + 'status_id' => 1, + ); + $financialTrxn = $this->callAPISuccess('FinancialTrxn', 'create', $params); + $params = array( + 'amount' => 50, + 'entity_table' => 'civicrm_contribution', + 'entity_id' => $contribution['id'], + 'financial_trxn_id' => $financialTrxn['id'], + ); + $this->callAPISuccess('EntityFinancialTrxn', 'create', $params); + $entityParams = array( + 'contribution_total_amount' => $contribution['total_amount'], + 'trxn_total_amount' => 55, + 'trxn_id' => $financialTrxn['id'], + ); + $lineItems = CRM_Price_BAO_LineItem::getLineItemsByContributionID($contribution['id']); + list($ftIds, $taxItems) = CRM_Contribute_BAO_Contribution::getLastFinancialItemIds($contribution['id']); + CRM_Contribute_BAO_Contribution::createProportionalFinancialEntries($entityParams, $lineItems, $ftIds, $taxItems); + $eftParams = array( + 'entity_table' => 'civicrm_financial_item', + 'financial_trxn_id' => $financialTrxn['id'], + ); + $entityFinancialTrxn = $this->callAPISuccess('EntityFinancialTrxn', 'Get', $eftParams); + $this->assertEquals($entityFinancialTrxn['count'], 2, 'Invalid count.'); + $testAmount = array(5, 50); + foreach ($entityFinancialTrxn['values'] as $value) { + $this->assertEquals($value['amount'], array_pop($testAmount), 'Invalid amount stored in civicrm_entity_financial_trxn.'); + } + } + /** * Function to create contribution with tax. */ @@ -1162,7 +1202,7 @@ WHERE eft.entity_id = %1 AND ft.to_financial_account_id <> %2"; 'return' => array('tax_amount', 'total_amount'), ) ); - return $contribution; + return array($contribution, $financialAccount); } } -- 2.25.1