+ }
+
+ /*
+ * Function tests invalid contribution status change
+ */
+ function testCreateUpdateContributionInValidStatusChange() {
+ $contribParams = array(
+ 'contact_id' => 1,
+ 'receive_date' => '2012-01-01',
+ 'total_amount' => 100.00,
+ 'financial_type_id' => 1,
+ 'payment_instrument_id' => 1,
+ 'contribution_status_id' => 1,
+ 'version' => 3,
+ );
+ $contribution = civicrm_api('contribution', 'create', $contribParams);
+ $newParams = array_merge($contribParams, array(
+ 'id' => $contribution['id'],
+ 'contribution_status_id' => 2,
+ )
+ );
+ $contribution = civicrm_api('contribution', 'update', $newParams);
+ $this->assertTrue(!empty($contribution['is_error']), 'In line ' . __LINE__);
+ $this->assertEquals($contribution['error_message'], ts('Cannot change contribution status from Completed to Pending.'), 'In line ' . __LINE__);
+