Merge pull request #7490 from yashodha/CRM-17398
[civicrm-core.git] / tests / phpunit / api / v3 / ContributionTest.php
index 77ee69fe85dcf4abdb450174cad2eb7bbabd576f..664f4f99d1c06aed5879493d7758e112a5d2b75f 100644 (file)
@@ -1049,7 +1049,8 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
     $contribution = $this->callAPISuccess('contribution', 'create', $contribParams);
     $newParams = array_merge($contribParams, array(
         'id' => $contribution['id'],
-        'contribution_status_id' => 7,
+        'contribution_status_id' => 'Refunded',
+        'cancel_date' => '2015-01-01 09:00',
       )
     );
 
@@ -1555,6 +1556,40 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
     $mut->stop();
   }
 
+  /**
+   * Test completing first transaction in a recurring series.
+   *
+   * The status should be set to 'in progress' and the next scheduled payment date calculated.
+   */
+  public function testCompleteTransactionSetStatusToInProgress() {
+    $paymentProcessorID = $this->paymentProcessorCreate();
+    $contributionRecur = $this->callAPISuccess('contribution_recur', 'create', array(
+      'contact_id' => $this->_individualId,
+      'installments' => '12',
+      'frequency_interval' => '1',
+      'amount' => '500',
+      'contribution_status_id' => 'Pending',
+      'start_date' => '2012-01-01 00:00:00',
+      'currency' => 'USD',
+      'frequency_unit' => 'month',
+      'payment_processor_id' => $paymentProcessorID,
+    ));
+    $contribution = $this->callAPISuccess('contribution', 'create', array_merge(
+      $this->_params,
+      array(
+        'contribution_recur_id' => $contributionRecur['id'],
+        'contribution_status_id' => 'Pending',
+      ))
+    );
+    $this->callAPISuccess('Contribution', 'completetransaction', array('id' => $contribution));
+    $contributionRecur = $this->callAPISuccessGetSingle('ContributionRecur', array(
+      'id' => $contributionRecur['id'],
+      'return' => array('next_sched_contribution_date', 'contribution_status_id'),
+    ));
+    $this->assertEquals(5, $contributionRecur['contribution_status_id']);
+    $this->assertEquals(date('Y-m-d 00:00:00', strtotime('+1 month')), $contributionRecur['next_sched_contribution_date']);
+  }
+
   /**
    * Test completing a transaction with an event via the API.
    *
@@ -1988,6 +2023,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase {
         'to_financial_account_id' => 6,
         'total_amount' => -100,
         'status_id' => 7,
+        'trxn_date' => '2015-01-01 09:00:00',
       );
     }
     elseif ($context == 'cancelPending') {