<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
*/
require_once 'CiviTest/CiviUnitTestCase.php';
-//FIXME:This existed in ContributionTest, don't think it's necessary
-//require_once 'CiviTest/CiviMailUtils.php';
-
/**
* Test APIv3 civicrm_contribute_* functions
protected $_softIndividual1Id; //the first soft credit contact
protected $_softIndividual2Id; //the second soft credit contact
protected $_contributionId;
- protected $_contributionTypeId = 1;
- protected $_apiversion;
+ protected $_financialTypeId = 1;
+ protected $_apiversion = 3;
protected $_entity = 'Contribution';
public $debug = 0;
protected $_params;
- public $_eNoticeCompliant = TRUE;
+
function setUp() {
parent::setUp();
- $this->_apiversion = 3;
$this->_individualId = $this->individualCreate();
$this->_softIndividual1Id = $this->individualCreate();
$this->_softIndividual2Id = $this->individualCreate();
'contact_id' => $this->_individualId,
'receive_date' => '20120511',
'total_amount' => 100.00,
- 'financial_type_id' => $this->_contributionTypeId,
+ 'financial_type_id' => $this->_financialTypeId,
'non_deductible_amount' => 10.00,
'fee_amount' => 5.00,
'net_amount' => 95.00,
'source' => 'SSF',
'contribution_status_id' => 1,
- 'version' => $this->_apiversion,
);
$this->_processorParams = array(
'domain_id' => 1,
'url_recur' => 'http://dummy.com',
'billing_mode' => 1,
);
-// $this->_pageParams = array(
-// 'version' => 3,
-// 'title' => 'Test Contribution Page',
-// 'financial_type_id' => 1,
-// 'currency' => 'USD',
-// 'financial_account_id' => 1,
-// 'payment_processor' => $paymentProcessor->id,
-// 'is_active' => 1,
-// 'is_allow_other_amount' => 1,
-// 'min_amount' => 10,
-// 'max_amount' => 1000,
-// );
}
function tearDown() {
-
- $this->contributionTypeDelete();
$this->quickCleanup(array(
'civicrm_contribution',
'civicrm_event',
));
}
- function testGetParamsNotArrayContributionSoft() {
- $params = 'contact_id= 1';
- $contribution = $this->callAPIFailure('contribution', 'get', $params);
- $this->assertEquals($contribution['error_message'], 'Input variable `params` is not an array');
- }
-
+ /**
+ * Test get methods
+ * @todo - this might be better broken down into more smaller tests
+ */
function testGetContributionSoft() {
//We don't test for PCP fields because there's no PCP API, so we can't create campaigns.
$p = array(
'contact_id' => $this->_softIndividual1Id,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
+ 'soft_credit_type_id' => 4,
);
- $this->_softcontribution = civicrm_api('contribution_soft', 'create', $p);
- $this->assertEquals($this->_softcontribution['is_error'], 0, 'In line ' . __LINE__);
+ $this->_softcontribution = $this->callAPISuccess('contribution_soft', 'create', $p);
$params = array(
'id' => $this->_softcontribution['id'],
- 'version' => $this->_apiversion,
);
- $softcontribution = civicrm_api('contribution_soft', 'get', $params);
- $this->assertAPISuccess($softcontribution, 'In line ' . __LINE__);
- $this->assertEquals(1,$softcontribution['count']);
-
- $this->documentMe($params, $softcontribution, __FUNCTION__, __FILE__);
+ $softcontribution = $this->callAPIAndDocument('contribution_soft', 'get', $params, __FUNCTION__, __FILE__);
+ $this->assertEquals(1, $softcontribution['count']);
$this->assertEquals($softcontribution['values'][$this->_softcontribution['id']]['contribution_id'], $this->_contributionId, 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$this->_softcontribution['id']]['contact_id'], $this->_softIndividual1Id, 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$this->_softcontribution['id']]['amount'], '10.00', 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$this->_softcontribution['id']]['currency'], 'USD', 'In line ' . __LINE__);
+ $this->assertEquals($softcontribution['values'][$this->_softcontribution['id']]['soft_credit_type_id'], 4, 'In line ' . __LINE__);
//create a second soft contribution on the same hard contribution - we are testing that 'id' gets the right soft contribution id (not the contribution id)
$p['contact_id'] = $this->_softIndividual2Id;
- $this->_softcontribution2 = civicrm_api('contribution_soft', 'create', $p);
- $this->assertAPISuccess($this->_softcontribution2, 'In line ' . __LINE__);
+ $this->_softcontribution2 = $this->callAPISuccess('contribution_soft', 'create', $p);
- $params = array(
- 'version' => $this->_apiversion,
- );
// now we have 2 - test getcount
- $softcontribution = civicrm_api('contribution_soft', 'getcount', array(
- 'version' => $this->_apiversion,
+ $softcontribution = $this->callAPISuccess('contribution_soft', 'getcount', array());
+ $this->assertEquals(2, $softcontribution);
+
+ //check first contribution
+ $result = $this->callAPISuccess('contribution_soft', 'get', array(
+ 'id' => $this->_softcontribution['id'],
));
+ $this->assertEquals(1, $result['count'], 'In line ' . __LINE__);
+ $this->assertEquals($this->_softcontribution['id'], $result['id']);
+ $this->assertEquals($this->_softcontribution['id'], $result['id'], print_r($softcontribution,true));
- $this->assertEquals(2, $softcontribution);
- //test id only format
- $softcontribution = civicrm_api('contribution_soft', 'get', array
- ('version' => $this->_apiversion,
- 'id' => $this->_softcontribution['id'],
- 'format.only_id' => 1,
- )
- );
- $this->assertEquals($this->_softcontribution['id'], $softcontribution, print_r($softcontribution,true) . " in line " . __LINE__);
//test id only format - second soft credit
- $softcontribution = civicrm_api('contribution_soft', 'get', array
- ('version' => $this->_apiversion,
- 'id' => $this->_softcontribution2['id'],
- 'format.only_id' => 1,
- )
- );
- $this->assertEquals($this->_softcontribution2['id'], $softcontribution);
- $softcontribution = civicrm_api('contribution_soft', 'get', array(
- 'version' => $this->_apiversion,
- 'id' => $this->_softcontribution['id'],
- ));
- //test id as field
- $this->assertAPISuccess($softcontribution, 'In line ' . __LINE__);
- $this->assertEquals(1, $softcontribution['count'], 'In line ' . __LINE__);
- $this->assertEquals($this->_softcontribution['id'], $softcontribution['id'] ) ;
+ $resultID2 = $this->callAPISuccess('contribution_soft', 'get', array(
+ 'id' => $this->_softcontribution2['id'],
+ 'format.only_id' => 1,
+ ));
+ $this->assertEquals($this->_softcontribution2['id'], $resultID2);
+
//test get by contact id works
- $softcontribution = civicrm_api('contribution_soft', 'get', array('version' => $this->_apiversion, 'contact_id' => $this->_softIndividual2Id));
- $this->assertAPISuccess($softcontribution, 'In line ' . __LINE__ . "get with contact_id" . print_r(array('version' => $this->_apiversion, 'contact_id' => $this->_softIndividual2Id), TRUE));
+ $result = $this->callAPISuccess('contribution_soft', 'get', array(
+ 'contact_id' => $this->_softIndividual2Id)
+ );
+ $this->assertEquals(1, $result['count'], 'In line ' . __LINE__);
- $this->assertEquals(1, $softcontribution['count'], 'In line ' . __LINE__);
- civicrm_api('contribution_soft', 'Delete', array(
+ $this->callAPISuccess('contribution_soft', 'Delete', array(
'id' => $this->_softcontribution['id'],
- 'version' => $this->_apiversion,
- ));
- civicrm_api('Contribution', 'Delete', array(
+ ));
+ // check one soft credit remains
+ $expectedCount = 1;
+ $this->callAPISuccess('contribution_soft', 'getcount', array(), $expectedCount);
+
+ //check id is same as 2
+ $this->assertEquals($this->_softcontribution2['id'], $this->callAPISuccess('contribution_soft', 'getvalue', array('return' => 'id' )));
+
+ $this->callAPISuccess('ContributionSoft', 'Delete', array(
'id' => $this->_softcontribution2['id'],
- 'version' => $this->_apiversion,
- ));
+ ));
}
///////////////// civicrm_contribution_soft
function testCreateEmptyParamsContributionSoft() {
-
-
- $params = array('version' => $this->_apiversion);
- $softcontribution = $this->callAPIFailure('contribution_soft', 'create', $params);
- $this->assertEquals($softcontribution['error_message'], 'Mandatory key(s) missing from params array: contribution_id, amount, contact_id', 'In line ' . __LINE__);
- }
-
- function testCreateParamsNotArrayContributionSoft() {
-
- $params = 'contact_id= 1';
- $softcontribution = $this->callAPIFailure('contribution_soft', 'create', $params);
- $this->assertEquals($softcontribution['error_message'], 'Input variable `params` is not an array');
+ $softcontribution = $this->callAPIFailure('contribution_soft', 'create', array(),
+ 'Mandatory key(s) missing from params array: contribution_id, amount, contact_id'
+ );
}
function testCreateParamsWithoutRequiredKeysContributionSoft() {
- $params = array('version' => 3);
- $softcontribution = $this->callAPIFailure('contribution_soft', 'create', $params);
- $this->assertEquals($softcontribution['error_message'], 'Mandatory key(s) missing from params array: contribution_id, amount, contact_id');
+ $softcontribution = $this->callAPIFailure('contribution_soft', 'create', array(),
+ 'Mandatory key(s) missing from params array: contribution_id, amount, contact_id'
+ );
}
function testCreateContributionSoftInvalidContact() {
'contribution_id' => $this->_contributionId,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
);
- $softcontribution = civicrm_api('contribution_soft', 'create', $params);
- $this->assertEquals($softcontribution['error_message'], 'contact_id is not valid : 999', 'In line ' . __LINE__);
+ $softcontribution = $this->callAPIFailure('contribution_soft', 'create', $params,
+ 'contact_id is not valid : 999'
+ );
}
function testCreateContributionSoftInvalidContributionId() {
'contact_id' => $this->_softIndividual1Id,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
);
- $softcontribution = civicrm_api('contribution_soft', 'create', $params);
- $this->assertEquals($softcontribution['error_message'], 'contribution_id is not valid : 999999', 'In line ' . __LINE__);
+ $softcontribution = $this->callAPIFailure('contribution_soft', 'create', $params,
+ 'contribution_id is not valid : 999999'
+ );
}
/*
'contact_id' => $this->_softIndividual1Id,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
+ 'soft_credit_type_id' => 5,
);
- $softcontribution = civicrm_api('contribution_soft', 'create', $params);
- $this->documentMe($params, $softcontribution, __FUNCTION__, __FILE__);
+ $softcontribution = $this->callAPIAndDocument('contribution_soft', 'create', $params, __FUNCTION__, __FILE__);
$this->assertEquals($softcontribution['values'][$softcontribution['id']]['contribution_id'], $this->_contributionId, 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$softcontribution['id']]['contact_id'], $this->_softIndividual1Id, 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$softcontribution['id']]['amount'], '10.00', 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$softcontribution['id']]['currency'], 'USD', 'In line ' . __LINE__);
+ $this->assertEquals($softcontribution['values'][$softcontribution['id']]['soft_credit_type_id'], 5, 'In line ' . __LINE__);
}
- /**
- * Test using example code
- */
-// function testContributionSoftCreateExample() {
-// //make sure at least one page exists since there is a truncate in tear down
-// $page = civicrm_api('contribution_page', 'create', $this->_pageParams);
-// $this->assertAPISuccess($page);
-// //FIXME: Can't written until ContributionSoftDelete is written
-// require_once 'api/v3/examples/ContributionSoftCreate.php';
-// $result = contribution_soft_create_example();
-// $this->assertAPISuccess($result);
-// $contributionId = $result['id'];
-// $expectedResult = contribution_soft_create_expectedresult();
-// $this->checkArrayEquals($result, $expectedResult);
-// $this->contributionDelete($contributionId);
-// }
-//
//To Update Soft Contribution
function testCreateUpdateContributionSoft() {
//create a soft credit
'contact_id' => $this->_softIndividual1Id,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
+ 'soft_credit_type_id' => 6,
);
- $softcontribution = civicrm_api('contribution_soft', 'create', $params);
+ $softcontribution = $this->callAPISuccess('contribution_soft', 'create', $params);
$softcontributionID = $softcontribution['id'];
$old_params = array(
'contribution_soft_id' => $softcontributionID,
- 'version' => $this->_apiversion,
);
- $original = civicrm_api('contribution_soft', 'get', $old_params);
+ $original = $this->callAPISuccess('contribution_soft', 'get', $old_params);
//Make sure it came back
- $this->assertTrue(empty($original['is_error']), 'In line ' . __LINE__);
$this->assertEquals($original['id'], $softcontributionID, 'In line ' . __LINE__);
//set up list of old params, verify
$old_contribution_id = $original['values'][$softcontributionID]['contribution_id'];
$old_contact_id = $original['values'][$softcontributionID]['contact_id'];
$old_amount = $original['values'][$softcontributionID]['amount'];
$old_currency = $original['values'][$softcontributionID]['currency'];
+ $old_soft_credit_type_id = $original['values'][$softcontributionID]['soft_credit_type_id'];
//check against original values
$this->assertEquals($old_contribution_id, $this->_contributionId, 'In line ' . __LINE__);
$this->assertEquals($old_contact_id, $this->_softIndividual1Id, 'In line ' . __LINE__);
$this->assertEquals($old_amount, 10.00, 'In line ' . __LINE__);
$this->assertEquals($old_currency, 'USD', 'In line ' . __LINE__);
+ $this->assertEquals($old_soft_credit_type_id, 6 , 'In line ' . __LINE__);
$params = array(
'id' => $softcontributionID,
'contribution_id' => $this->_contributionId,
'contact_id' => $this->_softIndividual1Id,
'amount' => 7.00,
'currency' => 'CAD',
- 'version' => $this->_apiversion,
+ 'soft_credit_type_id' => 7,
);
- $softcontribution = civicrm_api('contribution_soft', 'create', $params);
+ $softcontribution = $this->callAPISuccess('contribution_soft', 'create', $params);
$new_params = array(
'id' => $softcontribution['id'],
- 'version' => $this->_apiversion,
);
- $softcontribution = civicrm_api('contribution_soft', 'get', $new_params);
+ $softcontribution = $this->callAPISuccess('contribution_soft', 'get', $new_params);
//check against original values
$this->assertEquals($softcontribution['values'][$softcontributionID]['contribution_id'], $this->_contributionId, 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$softcontributionID]['contact_id'], $this->_softIndividual1Id, 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$softcontributionID]['amount'], 7.00, 'In line ' . __LINE__);
$this->assertEquals($softcontribution['values'][$softcontributionID]['currency'], 'CAD', 'In line ' . __LINE__);
+ $this->assertEquals($softcontribution['values'][$softcontributionID]['soft_credit_type_id'], 7, 'In line ' . __LINE__);
$params = array(
'id' => $softcontributionID,
- 'version' => $this->_apiversion,
);
- $result = civicrm_api('contribution_soft', 'delete', $params);
- $this->assertAPISuccess($result, 'in line' . __LINE__);
+ $result = $this->callAPISuccess('contribution_soft', 'delete', $params);
}
///////////////// civicrm_contribution_soft_delete methods
function testDeleteEmptyParamsContributionSoft() {
- $params = array('version' => $this->_apiversion);
- $softcontribution = $this->callAPIFailure('contribution_soft', 'delete', $params);
- }
-
- function testDeleteParamsNotArrayContributionSoft() {
- $params = 'id= 1';
+ $params = array();
$softcontribution = $this->callAPIFailure('contribution_soft', 'delete', $params);
- $this->assertEquals($softcontribution['error_message'], 'Input variable `params` is not an array');
}
function testDeleteWrongParamContributionSoft() {
$params = array(
'contribution_source' => 'SSF',
- 'version' => $this->_apiversion,
);
$softcontribution = $this->callAPIFailure('contribution_soft', 'delete', $params);
}
'contact_id' => $this->_softIndividual1Id,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
);
- $softcontribution = civicrm_api('contribution_soft', 'create', $params);
+ $softcontribution = $this->callAPISuccess('contribution_soft', 'create', $params);
$softcontributionID = $softcontribution['id'];
$params = array(
'id' => $softcontributionID,
- 'version' => $this->_apiversion,
);
- $result = civicrm_api('contribution_soft', 'delete', $params);
- $this->documentMe($params, $result, __FUNCTION__, __FILE__);
- $this->assertAPISuccess($result, 'In line ' . __LINE__);
+ $result = $this->callAPIAndDocument('contribution_soft', 'delete', $params, __FUNCTION__, __FILE__);
}
///////////////// civicrm_contribution_search methods
- /**
- * Test civicrm_contribution_soft_search with wrong params type
- */
- function testSearchWrongParamsType() {
- $params = 'a string';
- $result = $this->callAPIFailure('contribution_soft', 'get', $params);
- $this->assertEquals($result['error_message'], 'Input variable `params` is not an array', 'In line ' . __LINE__);
- }
-
/**
* Test civicrm_contribution_search with empty params.
* All available contributions expected.
*/
function testSearchEmptyParams() {
- $params = array('version' => $this->_apiversion);
-
$p = array(
'contribution_id' => $this->_contributionId,
'contact_id' => $this->_softIndividual1Id,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
);
- $softcontribution = civicrm_api('contribution_soft', 'create', $p);
+ $softcontribution = $this->callAPISuccess('contribution_soft', 'create', $p);
- $result = civicrm_api('contribution_soft', 'get', $params);
+ $result = $this->callAPISuccess('contribution_soft', 'get', array());
// We're taking the first element.
$res = $result['values'][$softcontribution['id']];
'contact_id' => $this->_softIndividual1Id,
'amount' => 10.00,
'currency' => 'USD',
- 'version' => $this->_apiversion,
);
- $softcontribution1 = civicrm_api('contribution_soft', 'create', $p1);
+ $softcontribution1 = $this->callAPISuccess('contribution_soft', 'create', $p1);
$p2 = array(
'contribution_id' => $this->_contributionId,
'contact_id' => $this->_softIndividual2Id,
'amount' => 25.00,
'currency' => 'CAD',
- 'version' => $this->_apiversion,
);
- $softcontribution2 = civicrm_api('contribution_soft', 'create', $p2);
+ $softcontribution2 = $this->callAPISuccess('contribution_soft', 'create', $p2);
$params = array(
'id' => $softcontribution2['id'],
- 'version' => $this->_apiversion,
);
- $result = civicrm_api('contribution_soft', 'get', $params);
+ $result = $this->callAPISuccess('contribution_soft', 'get', $params);
$res = $result['values'][$softcontribution2['id']];
$this->assertEquals($p2['contribution_id'], $res['contribution_id'], 'In line ' . __LINE__);