Skip to content
Snippets Groups Projects
Unverified Commit 177b66d2 authored by Eileen McNaughton's avatar Eileen McNaughton Committed by GitHub
Browse files

Merge pull request #19931 from eileenmcnaughton/fa

#2486 Add v4 batch api
parents ceda85a3 f294ab85
Branches
Tags
No related merge requests found
......@@ -40,10 +40,11 @@ class CRM_Batch_BAO_Batch extends CRM_Batch_DAO_Batch {
*
* @return object
* $batch batch object
* @throws \Exception
*/
public static function create(&$params) {
if (empty($params['id']) && empty($params['name'])) {
$params['name'] = CRM_Utils_String::titleToVar($params['title']);
$params['name'] = CRM_Utils_String::titleToVar($params['title'] ?? 'batch_ref_' . random_int(0, 100000));
}
return self::writeRecord($params);
}
......
<?php
/*
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC. All rights reserved. |
| |
| This work is published under the GNU AGPLv3 license with some |
| permitted exceptions and without any warranty. For full license |
| and copyright information, see https://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
/**
*
* @package CRM
* @copyright CiviCRM LLC https://civicrm.org/licensing
*/
namespace Civi\Api4;
/**
* Batch entity.
*
* @see https://docs.civicrm.org/user/en/latest/pledges/everyday-tasks/#batch-entry-of-pledges
* @package Civi\Api4
*/
class Batch extends Generic\DAOEntity {
}
......@@ -17,7 +17,6 @@
*/
class api_v3_BatchTest extends CiviUnitTestCase {
protected $_params = [];
protected $_entity = 'batch';
/**
......@@ -27,24 +26,36 @@ class api_v3_BatchTest extends CiviUnitTestCase {
*/
protected function setUp(): void {
parent::setUp();
$this->useTransaction(TRUE);
$this->useTransaction();
}
/**
* Test civicrm_batch_get - success expected.
*
* @dataProvider versionThreeAndFour
*
* @param int $version
*/
public function testGet() {
public function testGet(int $version): void {
$this->_apiversion = $version;
$params = [
'id' => $this->batchCreate(),
];
$result = $this->callAPIAndDocument('batch', 'get', $params, __FUNCTION__, __FILE__);
$result = $this->callAPIAndDocument('Batch', 'get', $params, __FUNCTION__, __FILE__);
$this->assertEquals($params['id'], $result['id']);
}
/**
* Test civicrm_batch_create - success expected.
*
* @dataProvider versionThreeAndFour
*
* @param int $version
*
* @throws \CRM_Core_Exception
*/
public function testCreate() {
public function testCreate(int $version): void {
$this->_apiversion = $version;
$params = [
'name' => 'New_Batch_03',
'title' => 'New Batch 03',
......@@ -56,13 +67,20 @@ class api_v3_BatchTest extends CiviUnitTestCase {
$result = $this->callAPIAndDocument('batch', 'create', $params, __FUNCTION__, __FILE__);
$this->assertNotNull($result['id']);
$this->getAndCheck($params, $result['id'], $this->_entity);
$this->getAndCheck($params, $result['id'], 'Batch');
}
/**
* Test civicrm_batch_create with id.
*
* @dataProvider versionThreeAndFour
*
* @param int $version
*
* @throws \CRM_Core_Exception
*/
public function testUpdate() {
public function testUpdate(int $version): void {
$this->_apiversion = $version;
$params = [
'name' => 'New_Batch_04',
'title' => 'New Batch 04',
......@@ -79,24 +97,31 @@ class api_v3_BatchTest extends CiviUnitTestCase {
/**
* Test civicrm_batch_delete using the old $params['batch_id'] syntax.
*
* @throws \CRM_Core_Exception
*/
public function testBatchDeleteOldSyntax() {
public function testBatchDeleteOldSyntax(): void {
$batchID = $this->batchCreate();
$params = [
'batch_id' => $batchID,
];
$result = $this->callAPISuccess('batch', 'delete', $params);
$this->callAPISuccess('Batch', 'delete', $params);
}
/**
* Test civicrm_batch_delete using the new $params['id'] syntax.
*
* @dataProvider versionThreeAndFour
*
* @param int $version
*/
public function testBatchDeleteCorrectSyntax() {
public function testBatchDeleteCorrectSyntax(int $version): void {
$this->_apiversion = $version;
$batchID = $this->batchCreate();
$params = [
'id' => $batchID,
];
$result = $this->callAPIAndDocument('batch', 'delete', $params, __FUNCTION__, __FILE__);
$this->callAPIAndDocument('Batch', 'delete', $params, __FUNCTION__, __FILE__);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment