Documentation

ProductTest extends BaseTestClass
in package

Tags
group

headless

Table of Contents

Properties

$apiversion  : int
API version to use for any api calls.
$_apiversion  : int
Api version - easier to override than just a define
$ids  : array<string|int, mixed>
IDs set up for test.

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.
setUpHeadless()  : CiviEnvBuilder
The setupHeadless function runs at the start of each test case, right before the headless environment reboots.
tearDown()  : void
testProductApiPermissions()  : void
Test api applies permissions on line item actions (delete & get).
versionThreeAndFour()  : array<string|int, mixed>
Get the api versions to test.
addFinancialAclPermissions()  : void
Add a permission to the financial ACLs.
cleanupPriceSets()  : void
Delete extraneous price sets.
createPriceSet()  : void
Create price set.
runApi4LegacyChain()  : array<string|int, mixed>
setPermissions()  : void
Set ACL permissions, overwriting any existing ones.
setupLoggedInUserWithLimitedFinancialTypeAccess()  : 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

Api version - easier to override than just a define

protected int $_apiversion = 3

$ids

IDs set up for test.

protected array<string|int, mixed> $ids = []

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>|int

callAPIFailure()

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>|int

callAPISuccess()

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>|int

callAPISuccessGetCount()

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>|int

callAPISuccessGetSingle()

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>|int

callAPISuccessGetValue()

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>|int

civicrm_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>|int

contactDelete()

Delete contact, ensuring it is not the domain contact

public contactDelete(int $contactID) : void
Parameters
$contactID : int

Contact ID to delete

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
params

array to add group

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
throws
CRM_Core_Exception
throws
Exception
Return values
array<string|int, mixed>|int

sampleContact()

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)

testProductApiPermissions()

Test api applies permissions on line item actions (delete & get).

public testProductApiPermissions(mixed $version) : void
Parameters
$version : mixed
Tags
dataProvider

versionThreeAndFour

versionThreeAndFour()

Get the api versions to test.

public versionThreeAndFour() : array<string|int, mixed>
Return values
array<string|int, mixed>

addFinancialAclPermissions()

Add a permission to the financial ACLs.

protected addFinancialAclPermissions(array<string|int, mixed> $aclPermissions) : void
Parameters
$aclPermissions : array<string|int, mixed>

Array of ACL permissions in the format [[$action, $financialType], [$action, $financialType]

createPriceSet()

Create price set.

protected createPriceSet([string $identifier = 'default' ]) : void
Parameters
$identifier : string = 'default'

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
throws
CRM_Core_Exception
Return values
array<string|int, mixed>

setPermissions()

Set ACL permissions, overwriting any existing ones.

protected setPermissions(array<string|int, mixed> $permissions) : void
Parameters
$permissions : array<string|int, mixed>

Array of permissions e.g ['access CiviCRM','access CiviContribute'],

setupLoggedInUserWithLimitedFinancialTypeAccess()

protected setupLoggedInUserWithLimitedFinancialTypeAccess() : void

_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


        
On this page

Search results