Documentation

GroupTest extends TestCase implements HeadlessInterface, HookInterface, TransactionalInterface uses ContactTestTrait, EntityTrait, Api3TestTrait

FIXME - Add test description.

Tips:

  • With HookInterface, you may implement CiviCRM hooks directly in the test class. Simply create corresponding functions (e.g. "hook_civicrm_post(...)" or similar).
  • With TransactionalInterface, any data changes made by setUp() or test****() functions will rollback automatically -- as long as you don't manipulate schema or truncate tables. If this test needs to manipulate schema or truncate tables, then either: a. Do all that using setupHeadless() and Civi\Test. b. Disable TransactionalInterface, and handle all setup/teardown yourself.
Tags
group

headless

Table of Contents

Interfaces

HeadlessInterface
Interface HeadlessInterface
HookInterface
TransactionalInterface
Interface HeadlessInterface

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>
Array of IDs created to support the test.
$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.
dataProvider()  : array<string|int, mixed>
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
Civi\Test has many helpers, like install(), uninstall(), sql(), and sqlFile(). See: https://github.com/civicrm/org.civicrm.testapalooza/blob/master/civi-test.md
testAll()  : void
Test CRM_Contact_Form_Search_Custom_Group::all().
testColumns()  : void
Test CRM_Contact_Form_Search_Custom_Group::columns() It returns an array of translated name => keys
testContactIDs()  : void
Test CRM_Contact_Form_Search_Custom_Group::contactIDs().
testSummary()  : void
Test CRM_Contact_Form_Search_Custom_Group::summary() It returns NULL
testTemplateFile()  : void
Test CRM_Contact_Form_Search_Custom_Group::templateFile() Returns the path to the file as a string
testWhereFalse()  : void
Test CRM_Contact_Form_Search_Custom_Group::where( ) With false argument it returns '(1)'
testWhereNoArgs()  : void
Test CRM_Contact_Form_Search_Custom_Group::where( ) With no arguments it returns '(1)'
testWhereTrue()  : void
Test CRM_Contact_Form_Search_Custom_Group::where( ) With true argument it returns list of contact IDs
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
setup()  : void
Set up tags and groups for test.
_contactCreate()  : int
Private helper function for calling civicrm_contact_add.
replaceFormValuesPlaceholders()  : array<string|int, mixed>
Replace placeholder form values with created IDS.
replaceIDSPlaceholders()  : array<string|int, mixed>

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

Array of IDs created to support the test.

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

e.g $this->ids = ['Event' => ['descriptive_key' => $eventID], 'Group' => [$groupID]];

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

dataProvider()

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

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)

setUpHeadless()

Civi\Test has many helpers, like install(), uninstall(), sql(), and sqlFile(). See: https://github.com/civicrm/org.civicrm.testapalooza/blob/master/civi-test.md

public setUpHeadless() : CiviEnvBuilder
Return values
CiviEnvBuilder

testAll()

Test CRM_Contact_Form_Search_Custom_Group::all().

public testAll(array<string|int, mixed> $formValues, array<string|int, mixed> $contactIDs) : void
Parameters
$formValues : array<string|int, mixed>
$contactIDs : array<string|int, mixed>
Tags
dataProvider

dataProvider

throws
CRM_Core_Exception

testColumns()

Test CRM_Contact_Form_Search_Custom_Group::columns() It returns an array of translated name => keys

public testColumns() : void

testContactIDs()

Test CRM_Contact_Form_Search_Custom_Group::contactIDs().

public testContactIDs(mixed $formValues, mixed $contactIDs) : void
Parameters
$formValues : mixed
$contactIDs : mixed
Tags
dataProvider

dataProvider

throws
Exception

testSummary()

Test CRM_Contact_Form_Search_Custom_Group::summary() It returns NULL

public testSummary() : void

testTemplateFile()

Test CRM_Contact_Form_Search_Custom_Group::templateFile() Returns the path to the file as a string

public testTemplateFile() : void

testWhereFalse()

Test CRM_Contact_Form_Search_Custom_Group::where( ) With false argument it returns '(1)'

public testWhereFalse() : void

testWhereNoArgs()

Test CRM_Contact_Form_Search_Custom_Group::where( ) With no arguments it returns '(1)'

public testWhereNoArgs() : void

testWhereTrue()

Test CRM_Contact_Form_Search_Custom_Group::where( ) With true argument it returns list of contact IDs

public testWhereTrue() : 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
throws
CRM_Core_Exception
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

setup()

Set up tags and groups for test.

protected setup() : 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

replaceFormValuesPlaceholders()

Replace placeholder form values with created IDS.

private replaceFormValuesPlaceholders(array<string|int, mixed> $formValues) : array<string|int, mixed>
Parameters
$formValues : array<string|int, mixed>
Return values
array<string|int, mixed>

replaceIDSPlaceholders()

private replaceIDSPlaceholders(array<string|int, mixed> $contactIDs) : array<string|int, mixed>
Parameters
$contactIDs : array<string|int, mixed>
Return values
array<string|int, mixed>

        
On this page

Search results