3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.6 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2014 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
27 require_once 'CiviTest/CiviUnitTestCase.php';
28 require_once 'CRM/Financial/DAO/FinancialAccount.php';
29 require_once 'CRM/Financial/BAO/FinancialAccount.php';
32 * Class CRM_Financial_BAO_FinancialItemTest
34 class CRM_Financial_BAO_FinancialItemTest
extends CiviUnitTestCase
{
36 public function setUp() {
43 public function testAdd() {
45 $lastName = 'Whatson';
47 'first_name' => $firstName,
48 'last_name' => $lastName,
49 'contact_type' => 'Individual',
52 $contact = CRM_Contact_BAO_Contact
::add($params);
56 'contact_id' => $contact->id
,
57 'total_amount' => $price,
58 'financial_type_id' => 1,
64 $contribution = CRM_Contribute_BAO_Contribution
::add($cParams, $defaults);
66 'entity_id' => $contribution->id
,
67 'entity_table' => 'civicrm_contribution',
68 'price_field_id' => 1,
70 'label' => 'Contribution Amount',
71 'unit_price' => $price,
72 'line_total' => $price,
73 'price_field_value_id' => 1,
74 'financial_type_id' => 1,
77 $lineItem = CRM_Price_BAO_LineItem
::create($lParams);
78 CRM_Financial_BAO_FinancialItem
::add($lineItem, $contribution);
79 $result = $this->assertDBNotNull(
80 'CRM_Financial_DAO_FinancialItem',
84 'Database check on added financial item record.'
86 $this->assertEquals($result, $price, 'Verify Amount for Financial Item');
90 * Check method retrive()
92 public function testRetrieve() {
94 $lastName = 'Whatson';
96 'first_name' => $firstName,
97 'last_name' => $lastName,
98 'contact_type' => 'Individual',
101 $contact = CRM_Contact_BAO_Contact
::add($params);
104 'contact_id' => $contact->id
,
105 'total_amount' => $price,
106 'financial_type_id' => 1,
112 $contribution = CRM_Contribute_BAO_Contribution
::add($cParams, $defaults);
114 'entity_id' => $contribution->id
,
115 'entity_table' => 'civicrm_contribution',
116 'price_field_id' => 1,
118 'label' => 'Contribution Amount',
119 'unit_price' => $price,
120 'line_total' => $price,
121 'price_field_value_id' => 1,
122 'financial_type_id' => 1,
125 $lineItem = CRM_Price_BAO_LineItem
::create($lParams);
126 CRM_Financial_BAO_FinancialItem
::add($lineItem, $contribution);
129 'entity_id' => $lineItem->id
,
130 'entity_table' => 'civicrm_line_item',
132 $financialItem = CRM_Financial_BAO_FinancialItem
::retrieve($fParams, $values);
133 $this->assertEquals($financialItem->amount
, $price, 'Verify financial item amount.');
137 * Check method create()
139 public function testCreate() {
140 $firstName = 'Shane';
141 $lastName = 'Whatson';
143 'first_name' => $firstName,
144 'last_name' => $lastName,
145 'contact_type' => 'Individual',
148 $contact = CRM_Contact_BAO_Contact
::add($params);
151 'contact_id' => $contact->id
,
152 'total_amount' => $price,
153 'financial_type_id' => 1,
159 $contribution = CRM_Contribute_BAO_Contribution
::add($cParams, $defaults);
161 'entity_id' => $contribution->id
,
162 'entity_table' => 'civicrm_contribution',
163 'price_field_id' => 1,
165 'label' => 'Contribution Amount',
166 'unit_price' => $price,
167 'line_total' => $price,
168 'price_field_value_id' => 1,
169 'financial_type_id' => 1,
172 $lineItem = CRM_Price_BAO_LineItem
::create($lParams);
174 'contact_id' => $contact->id
,
175 'description' => 'Contribution Amount',
177 'financial_account_id' => 1,
179 'transaction_date' => date('YmdHis'),
180 'entity_id' => $lineItem->id
,
181 'entity_table' => 'civicrm_line_item',
184 CRM_Financial_BAO_FinancialItem
::create($fParams);
185 $entityTrxn = new CRM_Financial_DAO_EntityFinancialTrxn();
186 $entityTrxn->entity_table
= 'civicrm_contribution';
187 $entityTrxn->entity_id
= $contribution->id
;
188 $entityTrxn->amount
= $price;
189 if ($entityTrxn->find(TRUE)) {
190 $entityId = $entityTrxn->entity_id
;
193 $result = $this->assertDBNotNull(
194 'CRM_Financial_DAO_FinancialItem',
198 'Database check on added financial item record.'
201 $this->assertEquals($result, $price, 'Verify Amount for Financial Item');
202 $entityResult = $this->assertDBNotNull(
203 'CRM_Financial_DAO_EntityFinancialTrxn',
207 'Database check on added entity financial trxn record.'
209 $this->assertEquals($entityResult, $price, 'Verify Amount for Financial Item');
215 public function testCreateEntityTrxn() {
217 'name' => 'Donations' . substr(sha1(rand()), 0, 7),
218 'is_deductible' => 0,
224 $financialAccount = CRM_Financial_BAO_FinancialAccount
::add($fParams, $ids);
225 $financialTrxn = new CRM_Financial_DAO_FinancialTrxn();
226 $financialTrxn->to_financial_account_id
= $financialAccount->id
;
227 $financialTrxn->total_amount
= $amount;
228 $financialTrxn->save();
230 'entity_table' => 'civicrm_contribution',
232 'financial_trxn_id' => $financialTrxn->id
,
236 $entityTrxn = CRM_Financial_BAO_FinancialItem
::createEntityTrxn($params);
237 $entityResult = $this->assertDBNotNull(
238 'CRM_Financial_DAO_EntityFinancialTrxn',
242 'Database check on added entity financial trxn record.'
244 $this->assertEquals($entityResult, $amount, 'Verify Amount for Financial Item');
249 * Check method retrieveEntityFinancialTrxn()
251 public function testRetrieveEntityFinancialTrxn() {
252 $entityTrxn = self
::testCreateEntityTrxn();
254 'entity_table' => 'civicrm_contribution',
256 'financial_trxn_id' => $entityTrxn->financial_trxn_id
,
257 'amount' => $entityTrxn->amount
,
260 CRM_Financial_BAO_FinancialItem
::retrieveEntityFinancialTrxn($params);
261 $entityResult = $this->assertDBNotNull(
262 'CRM_Financial_DAO_EntityFinancialTrxn',
263 $entityTrxn->financial_trxn_id
,
266 'Database check on added entity financial trxn record.'
268 $this->assertEquals($entityResult, $entityTrxn->amount
, 'Verify Amount for Financial Item');