api_v3_GrantTest
extends TestCase
in package
implements
HeadlessInterface, TransactionalInterface
uses
Api3TestTrait, ContactTestTrait, EntityTrait
Test APIv3 civicrm_grant* functions
Tags
Table of Contents
Interfaces
- HeadlessInterface
- Interface HeadlessInterface
- TransactionalInterface
- Interface HeadlessInterface
Properties
- $apiversion : int
- API version to use for any api calls.
- $_apiversion : mixed
- $_entity : string
- $ids : mixed
- $params : array<string|int, mixed>
- $tablesToCleanUp : array<string|int, mixed>
- Track tables we have modified during a test.
- $testRecords : array<string|int, mixed>
- Records created which will be deleted during tearDown
Methods
- assertAPIArrayComparison() : mixed
- Check that api returned 'is_error' => 1 else provide full message
- assertAPIDeleted() : mixed
- Check that a deleted item has been deleted.
- assertAPIFailure() : void
- Check that api returned 'is_error' => 1.
- assertAPISuccess() : mixed
- Check that api returned 'is_error' => 0.
- callAPIAndDocument() : array<string|int, mixed>|int
- callAPIFailure() : array<string|int, mixed>|int
- This function exists to wrap api functions.
- callAPISuccess() : array<string|int, mixed>|int
- wrap api functions.
- callAPISuccessGetCount() : array<string|int, mixed>|int
- This function exists to wrap api getValue function & check the result so we can ensure they succeed & throw exceptions without littering the test with checks There is a type check in this
- callAPISuccessGetSingle() : array<string|int, mixed>|int
- This function exists to wrap api getsingle function & check the result so we can ensure they succeed & throw exceptions without litterering the test with checks
- callAPISuccessGetValue() : array<string|int, mixed>|int
- This function wraps the getValue api and checks the result.
- civicrm_api() : array<string|int, mixed>|int
- A stub for the API interface. This can be overriden by subclasses to change how the API is called.
- contactDelete() : void
- Delete contact, ensuring it is not the domain contact
- createLoggedInUser() : int
- Emulate a logged in user since certain functions use that.
- groupContactCreate() : int
- Function to add a Group.
- groupCreate() : int
- Add a Group.
- groupDelete() : mixed
- Delete a Group.
- householdCreate() : int
- Generic function to create Household, to be used in test cases
- individualCreate() : int
- Generic function to create Individual, to be used in test cases
- organizationCreate() : int
- Generic function to create Organisation, to be used in test cases
- runApi4Legacy() : array<string|int, mixed>|int
- Emulate v3 syntax so we can run api3 tests on v4
- sampleContact() : array<string|int, mixed>
- Helper function for getting sample contact properties.
- setUp() : void
- setUpHeadless() : CiviEnvBuilder
- The setupHeadless function runs at the start of each test case, right before the headless environment reboots.
- tearDown() : void
- Cleanup after test.
- testCreateCustomCheckboxGrant() : void
- Check checkbox type custom fields are created correctly.
- testCreateGrant() : void
- testDeleteGrant() : void
- testGetGrant() : void
- testGrantGetDoesNotInterfereWithContributionGet() : void
- testGrantReportSeparatedFilter() : void
- Test contact subtype filter on grant report.
- testGrantWithZeroStatus() : void
- Test Grant status with `0` value.
- versionThreeAndFour() : array<string|int, mixed>
- Get the api versions to test.
- createTestEntity() : array<string|int, mixed>
- Create an entity, recording it's details for tearDown.
- runApi4LegacyChain() : array<string|int, mixed>
- setTestEntity() : void
- Set the test entity on the class for access.
- setTestEntityID() : void
- _contactCreate() : int
- Private helper function for calling civicrm_contact_add.
Properties
$apiversion
API version to use for any api calls.
public
int
$apiversion
= 4
$_apiversion
protected
mixed
$_apiversion
= 3
$_entity
protected
string
$_entity
= 'Grant'
$ids
protected
mixed
$ids
= []
$params
protected
array<string|int, mixed>
$params
$tablesToCleanUp
Track tables we have modified during a test.
protected
array<string|int, mixed>
$tablesToCleanUp
= []
Set up functions that add entities can register the relevant tables here for the cleanup process.
$testRecords
Records created which will be deleted during tearDown
protected
array<string|int, mixed>
$testRecords
= []
Methods
assertAPIArrayComparison()
Check that api returned 'is_error' => 1 else provide full message
public
assertAPIArrayComparison(array<string|int, mixed> $result, mixed $expected[, array<string|int, mixed> $valuesToExclude = [] ][, string $prefix = '' ]) : mixed
Parameters
- $result : array<string|int, mixed>
- $expected : mixed
- $valuesToExclude : array<string|int, mixed> = []
- $prefix : string = ''
-
Extra test to add to message.
assertAPIDeleted()
Check that a deleted item has been deleted.
public
assertAPIDeleted(mixed $entity, mixed $id) : mixed
Parameters
- $entity : mixed
- $id : mixed
assertAPIFailure()
Check that api returned 'is_error' => 1.
public
assertAPIFailure(array<string|int, mixed> $apiResult[, string $prefix = '' ][, string|null $expectedError = NULL ]) : void
Parameters
- $apiResult : array<string|int, mixed>
-
Api result.
- $prefix : string = ''
-
Extra test to add to message.
- $expectedError : string|null = NULL
assertAPISuccess()
Check that api returned 'is_error' => 0.
public
assertAPISuccess(array<string|int, mixed> $apiResult[, string $prefix = '' ]) : mixed
Parameters
- $apiResult : array<string|int, mixed>
-
Api result.
- $prefix : string = ''
-
Extra test to add to message.
callAPIAndDocument()
public
callAPIAndDocument(string $entity, string $action, array<string|int, mixed> $params) : array<string|int, mixed>|int
Parameters
- $entity : string
- $action : string
- $params : array<string|int, mixed>
Return values
array<string|int, mixed>|intcallAPIFailure()
This function exists to wrap api functions.
public
callAPIFailure(string $entity, string $action[, array<string|int, mixed> $params = [] ][, string $expectedErrorMessage = NULL ][, null $extraOutput = NULL ]) : array<string|int, mixed>|int
so we can ensure they fail where expected & throw exceptions without litterering the test with checks
Parameters
- $entity : string
- $action : string
- $params : array<string|int, mixed> = []
- $expectedErrorMessage : string = NULL
-
Error.
- $extraOutput : null = NULL
Return values
array<string|int, mixed>|intcallAPISuccess()
wrap api functions.
public
callAPISuccess(string $entity, string $action[, array<string|int, mixed> $params = [] ][, mixed $checkAgainst = NULL ]) : array<string|int, mixed>|int
so we can ensure they succeed & throw exceptions without litterering the test with checks
Parameters
- $entity : string
- $action : string
- $params : array<string|int, mixed> = []
- $checkAgainst : mixed = NULL
-
Optional value to check result against, implemented for getvalue,. getcount, getsingle. Note that for getvalue the type is checked rather than the value for getsingle the array is compared against an array passed in - the id is not compared (for better or worse )
Return values
array<string|int, mixed>|intcallAPISuccessGetCount()
This function exists to wrap api getValue function & check the result so we can ensure they succeed & throw exceptions without littering the test with checks There is a type check in this
public
callAPISuccessGetCount(string $entity, array<string|int, mixed> $params[, int $count = NULL ]) : array<string|int, mixed>|int
Parameters
- $entity : string
- $params : array<string|int, mixed>
- $count : int = NULL
Return values
array<string|int, mixed>|intcallAPISuccessGetSingle()
This function exists to wrap api getsingle function & check the result so we can ensure they succeed & throw exceptions without litterering the test with checks
public
callAPISuccessGetSingle(string $entity, array<string|int, mixed> $params[, array<string|int, mixed> $checkAgainst = NULL ]) : array<string|int, mixed>|int
Parameters
- $entity : string
- $params : array<string|int, mixed>
- $checkAgainst : array<string|int, mixed> = NULL
-
Array to compare result against.
- boolean
- integer
- double
- string
- array
- object
Return values
array<string|int, mixed>|intcallAPISuccessGetValue()
This function wraps the getValue api and checks the result.
public
callAPISuccessGetValue(string $entity, array<string|int, mixed> $params[, string $type = NULL ]) : array<string|int, mixed>|int
Parameters
- $entity : string
- $params : array<string|int, mixed>
- $type : string = NULL
-
Per http://php.net/manual/en/function.gettype.php possible types.
- boolean
- integer
- double
- string
- array
- object
Return values
array<string|int, mixed>|intcivicrm_api()
A stub for the API interface. This can be overriden by subclasses to change how the API is called.
public
civicrm_api(mixed $entity, mixed $action[, array<string|int, mixed> $params = [] ]) : array<string|int, mixed>|int
Parameters
- $entity : mixed
- $action : mixed
- $params : array<string|int, mixed> = []
Return values
array<string|int, mixed>|intcontactDelete()
Delete contact, ensuring it is not the domain contact
public
contactDelete(int $contactID) : void
Parameters
- $contactID : int
-
Contact ID to delete
createLoggedInUser()
Emulate a logged in user since certain functions use that.
public
createLoggedInUser() : int
value to store a record in the DB (like activity)
Tags
Return values
int —Contact ID of the created user.
groupContactCreate()
Function to add a Group.
public
groupContactCreate(int $groupID[, int $totalCount = 10 ][, bool $random = FALSE ]) : int
Parameters
- $groupID : int
- $totalCount : int = 10
- $random : bool = FALSE
Tags
Return values
int —groupId of created group
groupCreate()
Add a Group.
public
groupCreate([array<string|int, mixed> $params = [] ][, string $identifier = 'group' ]) : int
Parameters
- $params : array<string|int, mixed> = []
- $identifier : string = 'group'
Return values
int —groupId of created group
groupDelete()
Delete a Group.
public
groupDelete(int $gid) : mixed
Parameters
- $gid : int
householdCreate()
Generic function to create Household, to be used in test cases
public
householdCreate([array<string|int, mixed> $params = [] ][, int|string $identifier = 'household_0' ]) : int
Parameters
- $params : array<string|int, mixed> = []
-
parameters for civicrm_contact_add api function call
- $identifier : int|string = 'household_0'
-
If the identifier is numeric (discouraged) it will affect which contact is loaded. Numeric identifiers and values for random other than FALSE are generally discouraged in favour if specifying data in params where variety is needed.
Return values
int —id of Household created
individualCreate()
Generic function to create Individual, to be used in test cases
public
individualCreate([array<string|int, mixed> $params = [] ][, int|string $identifier = 'individual_0' ][, bool $random = FALSE ]) : int
Parameters
- $params : array<string|int, mixed> = []
-
parameters for civicrm_contact_add api function call
- $identifier : int|string = 'individual_0'
-
If the identifier is numeric (discouraged) it will affect which contact is loaded. Numeric identifiers and values for random other than FALSE are generally discouraged in favour if specifying data in params where variety is needed.
- $random : bool = FALSE
-
Random is deprecated.
Return values
int —id of Individual created
organizationCreate()
Generic function to create Organisation, to be used in test cases
public
organizationCreate([array<string|int, mixed> $params = [] ][, int|string $identifier = 'organization_0' ]) : int
Parameters
- $params : array<string|int, mixed> = []
-
parameters for civicrm_contact_add api function call
- $identifier : int|string = 'organization_0'
-
If the identifier is numeric (discouraged) it will affect which contact is loaded. Numeric identifiers and values for random other than FALSE are generally discouraged in favour if specifying data in params where variety is needed.
Return values
int —id of Organisation created
runApi4Legacy()
Emulate v3 syntax so we can run api3 tests on v4
public
runApi4Legacy(mixed $v3Entity, mixed $v3Action[, array<string|int, mixed> $v3Params = [] ]) : array<string|int, mixed>|int
Parameters
- $v3Entity : mixed
- $v3Action : mixed
- $v3Params : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed>|intsampleContact()
Helper function for getting sample contact properties.
public
sampleContact(string $contact_type[, int $seq = 0 ][, bool $random = FALSE ]) : array<string|int, mixed>
Parameters
- $contact_type : string
-
enum contact type: Individual, Organization
- $seq : int = 0
-
sequence number for the values of this type
- $random : bool = FALSE
Return values
array<string|int, mixed> —properties of sample contact (ie. $params for API call)
setUp()
public
setUp() : void
setUpHeadless()
The setupHeadless function runs at the start of each test case, right before the headless environment reboots.
public
setUpHeadless() : CiviEnvBuilder
Tags
Return values
CiviEnvBuildertearDown()
Cleanup after test.
public
tearDown() : void
Tags
testCreateCustomCheckboxGrant()
Check checkbox type custom fields are created correctly.
public
testCreateCustomCheckboxGrant() : void
We want to ensure they are saved with separators as appropriate
Tags
testCreateGrant()
public
testCreateGrant() : void
testDeleteGrant()
public
testDeleteGrant() : void
testGetGrant()
public
testGetGrant() : void
testGrantGetDoesNotInterfereWithContributionGet()
public
testGrantGetDoesNotInterfereWithContributionGet() : void
testGrantReportSeparatedFilter()
Test contact subtype filter on grant report.
public
testGrantReportSeparatedFilter() : void
testGrantWithZeroStatus()
Test Grant status with `0` value.
public
testGrantWithZeroStatus() : void
versionThreeAndFour()
Get the api versions to test.
public
versionThreeAndFour() : array<string|int, mixed>
Return values
array<string|int, mixed>createTestEntity()
Create an entity, recording it's details for tearDown.
protected
createTestEntity(string $entity, array<string|int, mixed> $values[, string $identifier = 'default' ]) : array<string|int, mixed>
Parameters
- $entity : string
- $values : array<string|int, mixed>
- $identifier : string = 'default'
Return values
array<string|int, mixed>runApi4LegacyChain()
protected
runApi4LegacyChain(string $key, mixed $params, string $mainEntity, array<string|int, mixed> $result, bool $sequential) : array<string|int, mixed>
Parameters
- $key : string
- $params : mixed
- $mainEntity : string
- $result : array<string|int, mixed>
- $sequential : bool
Tags
Return values
array<string|int, mixed>setTestEntity()
Set the test entity on the class for access.
protected
setTestEntity(string $entity, array<string|int, mixed> $values, string $identifier) : void
This follows the ids patter and also the api4TestTrait pattern.
Parameters
- $entity : string
- $values : array<string|int, mixed>
- $identifier : string
setTestEntityID()
protected
setTestEntityID(string $entity, int $id, string $identifier) : void
Parameters
- $entity : string
- $id : int
- $identifier : string
_contactCreate()
Private helper function for calling civicrm_contact_add.
private
_contactCreate(array<string|int, mixed> $params[, string $identifier = 'Contact' ]) : int
Parameters
- $params : array<string|int, mixed>
-
For civicrm_contact_add api function call.
- $identifier : string = 'Contact'
Return values
int —id of contact created