add extra tests to submit functions
authoreileenmcnaughton <eileen@fuzion.co.nz>
Sat, 13 Jun 2015 20:13:55 +0000 (20:13 +0000)
committereileenmcnaughton <eileen@fuzion.co.nz>
Sat, 13 Jun 2015 20:46:35 +0000 (20:46 +0000)
CRM/Contribute/Form/Contribution.php
api/v3/FinancialTrxn.php [new file with mode: 0644]
tests/phpunit/CRM/Contribute/Form/ContributionTest.php
tests/phpunit/CRM/Member/Form/MembershipTest.php

index 2177d6ed582d176d50a3e05c000e66b63cc018b0..1dda69199f3c7eefea25ec71bc51033e8b7cb4e0 100644 (file)
@@ -1362,6 +1362,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP
       $existingContribution = civicrm_api3('contribution', 'getsingle', array(
         'id' => $params['id'],
       ));
+      $this->_id = $params['id'];
     }
     else {
       $existingContribution = array();
diff --git a/api/v3/FinancialTrxn.php b/api/v3/FinancialTrxn.php
new file mode 100644 (file)
index 0000000..9375c81
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.6                                                |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2015                                |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM.                                    |
+ |                                                                    |
+ | CiviCRM is free software; you can copy, modify, and distribute it  |
+ | under the terms of the GNU Affero General Public License           |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
+ |                                                                    |
+ | CiviCRM is distributed in the hope that it will be useful, but     |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of         |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
+ | See the GNU Affero General Public License for more details.        |
+ |                                                                    |
+ | You should have received a copy of the GNU Affero General Public   |
+ | License and the CiviCRM Licensing Exception along                  |
+ | with this program; if not, contact CiviCRM LLC                     |
+ | at info[AT]civicrm[DOT]org. If you have questions about the        |
+ | GNU Affero General Public License or the licensing of CiviCRM,     |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ * This api exposes CiviCRM FinancialItem.
+ *
+ * @package CiviCRM_APIv3
+ */
+
+/**
+ * Save a Financial Item.
+ *
+ * @param array $params
+ *
+ * @return array
+ */
+function civicrm_api3_financial_trxn_create($params) {
+  return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+}
+
+/**
+ * Get a Financialtrxn.
+ *
+ * @param array $params
+ *
+ * @return array
+ *   Array of retrieved Financial trxn property values.
+ */
+function civicrm_api3_financial_trxn_get($params) {
+  return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+}
+
+/**
+ * Delete a Financial trxn.
+ *
+ * @param array $params
+ *
+ * @return array
+ *   Array of deleted values.
+ */
+function civicrm_api3_financial_trxn_delete($params) {
+  return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params);
+}
index b50631ea7622ed7cac53687b7b3b694846e0aef9..a236f91eb4caa74824e520fe1c7ed8f9ccc91c48 100644 (file)
@@ -395,6 +395,47 @@ class CRM_Contribute_Form_ContributionTest extends CiviUnitTestCase {
     $this->assertEquals($note['note'], 'Super cool and interesting stuff');
   }
 
+  /**
+   * Test the submit function on the contribution page.
+   */
+  public function testSubmitUpdate() {
+    $form = new CRM_Contribute_Form_Contribution();
+
+    $form->testSubmit(array(
+        'total_amount' => 50,
+        'financial_type_id' => 1,
+        'receive_date' => '04/21/2015',
+        'receive_date_time' => '11:27PM',
+        'contact_id' => $this->_individualId,
+        'payment_instrument_id' => array_search('Check', $this->paymentInstruments),
+        'contribution_status_id' => 1,
+        'price_set_id' => 0,
+      ),
+      CRM_Core_Action::ADD);
+    $contribution = $this->callAPISuccessGetSingle('Contribution', array('contact_id' => $this->_individualId));
+    $form->testSubmit(array(
+      'total_amount' => 45,
+      'net_amount' => 45,
+      'financial_type_id' => 1,
+      'receive_date' => '04/21/2015',
+      'receive_date_time' => '11:27PM',
+      'contact_id' => $this->_individualId,
+      'payment_instrument_id' => array_search('Check', $this->paymentInstruments),
+      'contribution_status_id' => 1,
+      'price_set_id' => 0,
+      'id' => $contribution['id'],
+    ),
+      CRM_Core_Action::UPDATE);
+    $this->callAPISuccessGetCount('Contribution', array('contact_id' => $this->_individualId), 1);
+    $financialTransactions = $this->callAPISuccess('FinancialTrxn', 'get', array('sequential' => TRUE));
+    $this->assertEquals(2, $financialTransactions['count']);
+    $this->assertEquals(50, $financialTransactions['values'][0]['total_amount']);
+    $this->assertEquals(45, $financialTransactions['values'][1]['total_amount']);
+    $lineItem = $this->callAPISuccessGetSingle('LineItem', array());
+    $this->assertEquals(45, $lineItem['line_total']);
+  }
+
+
   /**
    * Get parameters for credit card submit calls.
    *
index 5632513b1456dc2b75b6a0a3cd98d5d925f98ddd..1a9b69f639e5469bf6ea9dc90d22089cf72144fd 100644 (file)
@@ -453,9 +453,8 @@ class CRM_Member_Form_MembershipTest extends CiviUnitTestCase {
       'billing_country_id-5' => '1228',
     );
     $form->submit($params);
-    // TODO: This will still fail right now.
-    //$this->callAPISuccessGetCount('Membership', array('contact_id' => $this->_individualId), 1);
+    $this->callAPISuccessGetCount('Membership', array('contact_id' => $this->_individualId), 1);
   }
 
 }
-// class CRM_Member_Form_MembershipTest
+