X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FCRM%2FContribute%2FBAO%2FContributionTest.php;h=726dc495619fdebfd5246715e2ab7e7cd7653f61;hb=5c8b902bbe1c1b486a773ae1b62ae72a8255d86b;hp=3399bfea8e7a1dad0a59fdd142dcf1d2a95a9dc4;hpb=4e4d421599f9ebb733162ad02fac492d2238a328;p=civicrm-core.git diff --git a/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php b/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php index 3399bfea8e..726dc49561 100644 --- a/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php +++ b/tests/phpunit/CRM/Contribute/BAO/ContributionTest.php @@ -783,4 +783,48 @@ WHERE eft.entity_id = %1 AND ft.to_financial_account_id <> %2"; return array($lineItems, $contributions); } + /** + * checkLineItems() check if total amount matches the sum of line total + */ + public function testcheckLineItems() { + $params = array( + 'contact_id' => 202, + 'receive_date' => '2010-01-20', + 'total_amount' => 100, + 'financial_type_id' => 3, + 'line_items' => array( + array( + 'line_item' => array( + array( + 'entity_table' => 'civicrm_contribution', + 'price_field_id' => 8, + 'price_field_value_id' => 16, + 'label' => 'test 1', + 'qty' => 1, + 'unit_price' => 100, + 'line_total' => 100, + ), + array( + 'entity_table' => 'civicrm_contribution', + 'price_field_id' => 8, + 'price_field_value_id' => 17, + 'label' => 'Test 2', + 'qty' => 1, + 'unit_price' => 200, + 'line_total' => 200, + 'financial_type_id' => 1, + ), + ), + 'params'=> array(), + ), + ) + ); + $error = CRM_Contribute_BAO_Contribution::checkLineItems($params); + $this->assertEquals("Line item total doesn't match with total amount.", $error); + $this->assertEquals(3, $params['line_items'][0]['line_item'][0]['financial_type_id']); + $params['total_amount'] = 300; + $error = CRM_Contribute_BAO_Contribution::checkLineItems($params); + $this->assertEquals(NULL, $error); + } + }