Merge pull request #11712 from jitendrapurohit/CRM-21795
[civicrm-core.git] / tests / phpunit / api / v3 / TaxContributionPageTest.php
index 96aee8d35f0de8877eb67b41a42018f9e308ccef..102659cb1fa655e3b9eb84dd213d85b6e3da14f6 100644 (file)
@@ -3,7 +3,7 @@
  +--------------------------------------------------------------------+
 | CiviCRM version 4.7                                                |
 +--------------------------------------------------------------------+
-| Copyright CiviCRM LLC (c) 2004-2017                                |
+| Copyright CiviCRM LLC (c) 2004-2018                                |
 +--------------------------------------------------------------------+
 | This file is a part of CiviCRM.                                    |
 |                                                                    |
@@ -167,23 +167,7 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
   }
 
   public function tearDown() {
-    $this->quickCleanup(array(
-      'civicrm_contribution',
-      'civicrm_contribution_soft',
-      'civicrm_event',
-      'civicrm_contribution_page',
-      'civicrm_participant',
-      'civicrm_participant_payment',
-      'civicrm_line_item',
-      'civicrm_financial_trxn',
-      'civicrm_financial_item',
-      'civicrm_entity_financial_trxn',
-      'civicrm_contact',
-      'civicrm_membership',
-      'civicrm_membership_payment',
-      'civicrm_payment_processor',
-    ));
-    CRM_Core_PseudoConstant::flush('taxRates');
+    $this->quickCleanUpFinancialEntities();
   }
 
   public function setUpContributionPage() {
@@ -224,14 +208,20 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
   }
 
   /**
-   * Online and offline contrbution from above created contrbution page.
+   * Online and offline contrbution from above created contribution page.
+   *
+   * @param string $thousandSeparator
+   *   punctuation used to refer to thousands.
+   *
+   * @dataProvider getThousandSeparators
    */
-  public function testCreateContributionOnline() {
+  public function testCreateContributionOnline($thousandSeparator) {
+    $this->setCurrencySeparators($thousandSeparator);
     $this->setUpContributionPage();
     $params = array(
       'contact_id' => $this->_individualId,
       'receive_date' => '20120511',
-      'total_amount' => 100.00,
+      'total_amount' => $this->formatMoneyInput(100.00),
       'financial_type_id' => $this->financialtypeID,
       'contribution_page_id' => $this->_ids['contribution_page'],
       'payment_processor' => $this->_ids['paymentProcessID'],
@@ -241,7 +231,7 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
       'contribution_status_id' => 1,
     );
 
-    $contribution = $this->callAPIAndDocument('contribution', 'create', $params, __FUNCTION__, __FILE__);
+    $contribution = $this->callAPISuccess('contribution', 'create', $params);
     $this->_ids['contributionId'] = $contribution['id'];
     $this->assertEquals($contribution['values'][$contribution['id']]['contact_id'], $this->_individualId);
     $this->assertEquals($contribution['values'][$contribution['id']]['total_amount'], 120.00);
@@ -254,7 +244,16 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
     $this->_checkFinancialRecords($contribution, 'online');
   }
 
-  public function testCreateContributionChainedLineItems() {
+  /**
+   * Create contribution with chained line items.
+   *
+   * @param string $thousandSeparator
+   *   punctuation used to refer to thousands.
+   *
+   * @dataProvider getThousandSeparators
+   */
+  public function testCreateContributionChainedLineItems($thousandSeparator) {
+    $this->setCurrencySeparators($thousandSeparator);
     $this->setUpContributionPage();
     $params = array(
       'contact_id' => $this->_individualId,
@@ -284,9 +283,7 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
       ),
     );
 
-    $description = "Create Contribution with Nested Line Items.";
-    $subfile = "CreateWithNestedLineItems";
-    $contribution = $this->callAPIAndDocument('contribution', 'create', $params, __FUNCTION__, __FILE__, $description, $subfile);
+    $contribution = $this->callAPISuccess('contribution', 'create', $params);
 
     $lineItems = $this->callAPISuccess('line_item', 'get', array(
       'entity_id' => $contribution['id'],
@@ -311,7 +308,7 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
       'source' => 'SSF',
       'contribution_status_id' => 2,
     );
-    $contribution = $this->callAPIAndDocument('contribution', 'create', $params, __FUNCTION__, __FILE__);
+    $contribution = $this->callAPISuccess('contribution', 'create', $params, __FUNCTION__, __FILE__);
     $this->assertEquals($contribution['values'][$contribution['id']]['contact_id'], $this->_individualId);
     $this->assertEquals($contribution['values'][$contribution['id']]['total_amount'], 120.00);
     $this->assertEquals($contribution['values'][$contribution['id']]['financial_type_id'], $this->financialtypeID);
@@ -323,12 +320,21 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
     $this->_checkFinancialRecords($contribution, 'payLater');
   }
 
-  public function testCreateContributionPendingOnline() {
+  /**
+   * Test online pending contributions.
+   *
+   * @param string $thousandSeparator
+   *   punctuation used to refer to thousands.
+   *
+   * @dataProvider getThousandSeparators
+   */
+  public function testCreateContributionPendingOnline($thousandSeparator) {
+    $this->setCurrencySeparators($thousandSeparator);
     $this->setUpContributionPage();
     $params = array(
       'contact_id' => $this->_individualId,
       'receive_date' => '20120511',
-      'total_amount' => 100.00,
+      'total_amount' => $this->formatMoneyInput(100.00),
       'financial_type_id' => $this->financialtypeID,
       'contribution_page_id' => $this->_ids['contribution_page'],
       'trxn_id' => 12345,
@@ -337,7 +343,7 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
       'contribution_status_id' => 2,
     );
 
-    $contribution = $this->callAPIAndDocument('contribution', 'create', $params, __FUNCTION__, __FILE__);
+    $contribution = $this->callAPISuccess('contribution', 'create', $params, __FUNCTION__, __FILE__);
     $this->assertEquals($contribution['values'][$contribution['id']]['contact_id'], $this->_individualId);
     $this->assertEquals($contribution['values'][$contribution['id']]['total_amount'], 120.00);
     $this->assertEquals($contribution['values'][$contribution['id']]['financial_type_id'], $this->financialtypeID);
@@ -347,6 +353,7 @@ class api_v3_TaxContributionPageTest extends CiviUnitTestCase {
     $this->assertEquals($contribution['values'][$contribution['id']]['tax_amount'], 20);
     $this->assertEquals($contribution['values'][$contribution['id']]['contribution_status_id'], 2);
     $this->_checkFinancialRecords($contribution, 'pending');
+    $this->setCurrencySeparators($thousandSeparator);
   }
 
   /**