Skip to content

Commit

Permalink
Merge pull request #10406 from civicrm/4.7.20-rc
Browse files Browse the repository at this point in the history
4.7.20 rc
  • Loading branch information
eileenmcnaughton authored May 23, 2017
2 parents 9b60d8b + f16a3d2 commit 7ef78e8
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 10 deletions.
22 changes: 12 additions & 10 deletions CRM/Financial/BAO/PaymentProcessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,19 @@ public static function create($params) {
$processor = new CRM_Financial_DAO_PaymentProcessor();
$processor->copyValues($params);

$ppTypeDAO = new CRM_Financial_DAO_PaymentProcessorType();
$ppTypeDAO->id = $params['payment_processor_type_id'];
if (!$ppTypeDAO->find(TRUE)) {
CRM_Core_Error::fatal(ts('Could not find payment processor meta information'));
}
if (empty($params['id'])) {
$ppTypeDAO = new CRM_Financial_DAO_PaymentProcessorType();
$ppTypeDAO->id = $params['payment_processor_type_id'];
if (!$ppTypeDAO->find(TRUE)) {
CRM_Core_Error::fatal(ts('Could not find payment processor meta information'));
}

// also copy meta fields from the info DAO
$processor->is_recur = $ppTypeDAO->is_recur;
$processor->billing_mode = $ppTypeDAO->billing_mode;
$processor->class_name = $ppTypeDAO->class_name;
$processor->payment_type = $ppTypeDAO->payment_type;
// also copy meta fields from the info DAO
$processor->is_recur = $ppTypeDAO->is_recur;
$processor->billing_mode = $ppTypeDAO->billing_mode;
$processor->class_name = $ppTypeDAO->class_name;
$processor->payment_type = $ppTypeDAO->payment_type;
}

$processor->save();
// CRM-11826, add entry in civicrm_entity_financial_account
Expand Down
32 changes: 32 additions & 0 deletions tests/phpunit/api/v3/PaymentProcessorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,38 @@ public function testPaymentProcessorCreate() {
return $result['id'];
}

/**
* Update payment processor.
*/
public function testPaymentProcessorUpdate() {
$params = $this->_params;
$result = $this->callAPISuccess('payment_processor', 'create', $params);
$this->assertNotNull($result['id']);

$updateParams = array(
'id' => $result['id'],
'name' => 'Update API Test',
);
$this->assertDBState('CRM_Financial_DAO_PaymentProcessor', $result['id'], $params);
$this->callAPISuccess('payment_processor', 'create', $updateParams);
$result = $this->callAPISuccess('payment_processor', 'get', array('id' => $result['id']));

$expectedResult = array(
'id' => $result['id'],
'domain_id' => $params['domain_id'],
'name' => $updateParams['name'],
'payment_processor_type_id' => $params['payment_processor_type_id'],
'is_default' => 0,
'is_test' => 0,
'class_name' => $params['class_name'],
'billing_mode' => 1,
'is_recur' => $params['is_recur'],
'payment_type' => 1,
'payment_instrument_id' => 1,
);
$this->checkArrayEquals($expectedResult, $result['values'][$result['id']]);
}

/**
* Test using example code.
*/
Expand Down

0 comments on commit 7ef78e8

Please sign in to comment.