From 7802851756d5769a638bff345a604bcb9a2de4dd Mon Sep 17 00:00:00 2001 From: Bradley Taylor <hello@brad-taylor.co.uk> Date: Tue, 31 Jan 2023 19:38:39 +0000 Subject: [PATCH] [REF][PHP8.2] Tidy, and PHP8.2 compatiability for api_v3_CustomValueContactTypeTest --- .../api/v3/CustomValueContactTypeTest.php | 136 +++++++++++------- 1 file changed, 84 insertions(+), 52 deletions(-) diff --git a/tests/phpunit/api/v3/CustomValueContactTypeTest.php b/tests/phpunit/api/v3/CustomValueContactTypeTest.php index f6f4f32ac6..8dbf02be92 100644 --- a/tests/phpunit/api/v3/CustomValueContactTypeTest.php +++ b/tests/phpunit/api/v3/CustomValueContactTypeTest.php @@ -10,43 +10,74 @@ */ /** - * Test APIv3 civicrm_activity_* functions - * * @package CiviCRM_APIv3 * @subpackage API_Contact * @group headless */ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { - protected $_contactID; - protected $_apiversion = 3; - protected $CustomGroupIndividual; - protected $individualStudent; + + /** + * @var int + */ + private $individualFieldID; + + /** + * @var int + */ + private $individualStudentFieldID; + + /** + * @var int + */ + private $individualContactID; + + /** + * @var int + */ + private $individualStudentContactID; + + /** + * @var int + */ + private $individualParentContactID; + + /** + * @var int + */ + private $organizationContactID; + + /** + * @var int + */ + private $organizationSponsorContactID; public function setUp(): void { parent::setUp(); // Create Group For Individual Contact Type $groupIndividual = [ - 'title' => 'TestGroup For Indivi' . substr(sha1(rand()), 0, 5), + 'title' => 'TestGroup For Individual' . substr(sha1(rand()), 0, 5), 'extends' => ['Individual'], 'style' => 'Inline', 'is_active' => 1, ]; - $this->CustomGroupIndividual = $this->customGroupCreate($groupIndividual); + $customGroupIndividual = $this->customGroupCreate($groupIndividual); - $this->IndividualField = $this->customFieldCreate(['custom_group_id' => $this->CustomGroupIndividual['id']]); + $individualField = $this->customFieldCreate(['custom_group_id' => $customGroupIndividual['id']]); + $this->individualFieldID = $individualField['id']; // Create Group For Individual-Student Contact Sub Type - $groupIndiStudent = [ + $groupIndividualStudent = [ 'title' => 'Student Test' . substr(sha1(rand()), 0, 5), 'extends' => ['Individual', ['Student']], 'style' => 'Inline', 'is_active' => 1, ]; - $this->CustomGroupIndiStudent = $this->customGroupCreate($groupIndiStudent); + $customGroupIndividualStudent = $this->customGroupCreate($groupIndividualStudent); - $this->IndiStudentField = $this->customFieldCreate(['custom_group_id' => $this->CustomGroupIndiStudent['id']]); + $individualStudentField = $this->customFieldCreate(['custom_group_id' => $customGroupIndividualStudent['id']]); + $this->individualStudentFieldID = $individualStudentField['id']; $params = [ 'first_name' => 'Mathev', @@ -54,7 +85,7 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { 'contact_type' => 'Individual', ]; - $this->individual = $this->individualCreate($params); + $this->individualContactID = $this->individualCreate($params); $params = [ 'first_name' => 'Steve', @@ -62,7 +93,7 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { 'contact_type' => 'Individual', 'contact_sub_type' => 'Student', ]; - $this->individualStudent = $this->individualCreate($params); + $this->individualStudentContactID = $this->individualCreate($params); $params = [ 'first_name' => 'Mark', @@ -70,24 +101,25 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { 'contact_type' => 'Individual', 'contact_sub_type' => 'Parent', ]; - $this->individualParent = $this->individualCreate($params); + $this->individualParentContactID = $this->individualCreate($params); $params = [ 'organization_name' => 'Wellspring', 'contact_type' => 'Organization', ]; - $this->organization = $this->organizationCreate($params); + $this->organizationContactID = $this->organizationCreate($params); $params = [ 'organization_name' => 'SubUrban', 'contact_type' => 'Organization', 'contact_sub_type' => 'Sponsor', ]; - $this->organizationSponsor = $this->organizationCreate($params); + $this->organizationSponsorContactID = $this->organizationCreate($params); + //refresh php cached variables CRM_Core_PseudoConstant::flush(); - CRM_Core_BAO_CustomField::getTableColumnGroup($this->IndividualField['id']); - CRM_Core_BAO_CustomField::getTableColumnGroup($this->IndiStudentField['id']); + CRM_Core_BAO_CustomField::getTableColumnGroup($this->individualFieldID); + CRM_Core_BAO_CustomField::getTableColumnGroup($this->individualStudentFieldID); } public function tearDown(): void { @@ -100,19 +132,19 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { */ public function testGetFields() { $result = $this->callAPISuccess('Contact', 'getfields', []); - $this->assertArrayHasKey("custom_{$this->IndividualField['id']}", $result['values'], 'If This fails there is probably a caching issue - failure in line' . __LINE__ . print_r(array_keys($result['values']), TRUE)); + $this->assertArrayHasKey("custom_{$this->individualFieldID}", $result['values'], 'If This fails there is probably a caching issue - failure in line' . __LINE__ . print_r(array_keys($result['values']), TRUE)); $result = $this->callAPISuccess('Contact', 'getfields', [ 'action' => 'create', 'contact_type' => 'Individual', ], 'in line' . __LINE__); - $this->assertArrayHasKey("custom_{$this->IndividualField['id']}", $result['values']); + $this->assertArrayHasKey("custom_{$this->individualFieldID}", $result['values']); $result = $this->callAPISuccess('Contact', 'getfields', [ 'action' => 'create', 'contact_type' => 'Organization', ]); - $this->assertArrayNotHasKey("custom_{$this->IndividualField['id']}", $result['values'], 'in line' . __LINE__ . print_r(array_keys($result['values']), TRUE)); + $this->assertArrayNotHasKey("custom_{$this->individualFieldID}", $result['values'], 'in line' . __LINE__ . print_r(array_keys($result['values']), TRUE)); $result = $this->callAPISuccess('Relationship', 'getfields', ['action' => 'create'], 'in line' . __LINE__); - $this->assertArrayNotHasKey("custom_{$this->IndividualField['id']}", $result['values']); + $this->assertArrayNotHasKey("custom_{$this->individualFieldID}", $result['values']); } /** @@ -121,16 +153,16 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { public function testAddIndividualCustomDataToOrganization() { $params = [ - 'id' => $this->organization, + 'id' => $this->organizationContactID, 'contact_type' => 'Organization', - "custom_{$this->IndividualField['id']}" => 'Test String', + "custom_{$this->individualFieldID}" => 'Test String', // so that undefined_fields is returned 'debug' => 1, ]; $contact = $this->callAPISuccess('contact', 'create', $params); $this->assertTrue(is_array($contact['undefined_fields']), __LINE__); - $this->assertTrue(in_array("custom_{$this->IndividualField['id']}", $contact['undefined_fields']), __LINE__); + $this->assertTrue(in_array("custom_{$this->individualFieldID}", $contact['undefined_fields']), __LINE__); } /** @@ -149,18 +181,18 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { public function testAddValidCustomDataToIndividual() { $params = [ - 'contact_id' => $this->individual, + 'contact_id' => $this->individualContactID, 'contact_type' => 'Individual', - "custom_{$this->IndividualField['id']}" => 'Test String', + "custom_{$this->individualFieldID}" => 'Test String', ]; $contact = $this->callAPISuccess('contact', 'create', $params); $this->assertNotNull($contact['id']); - $entityValues = CRM_Core_BAO_CustomValueTable::getEntityValues($this->individual); - $elements["custom_{$this->IndividualField['id']}"] = $entityValues["{$this->IndividualField['id']}"]; + $entityValues = CRM_Core_BAO_CustomValueTable::getEntityValues($this->individualContactID); + $elements["custom_{$this->individualFieldID}"] = $entityValues["{$this->individualFieldID}"]; // Check the Value in Database - $this->assertEquals($elements["custom_{$this->IndividualField['id']}"], 'Test String'); + $this->assertEquals($elements["custom_{$this->individualFieldID}"], 'Test String'); } /** @@ -169,16 +201,16 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { public function testAddIndividualStudentCustomDataToOrganizationSponsor() { $params = [ - 'contact_id' => $this->organizationSponsor, + 'contact_id' => $this->organizationSponsorContactID, 'contact_type' => 'Organization', - "custom_{$this->IndiStudentField['id']}" => 'Test String', + "custom_{$this->individualStudentFieldID}" => 'Test String', // so that undefined_fields is returned 'debug' => 1, ]; $contact = $this->callAPISuccess('contact', 'create', $params); $this->assertTrue(is_array($contact['undefined_fields']), __LINE__); - $this->assertTrue(in_array("custom_{$this->IndiStudentField['id']}", $contact['undefined_fields']), __LINE__); + $this->assertTrue(in_array("custom_{$this->individualStudentFieldID}", $contact['undefined_fields']), __LINE__); } /** @@ -187,19 +219,19 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { public function testCreateValidCustomDataToIndividualStudent() { $params = [ - 'contact_id' => $this->individualStudent, + 'contact_id' => $this->individualStudentContactID, 'contact_type' => 'Individual', - "custom_{$this->IndiStudentField['id']}" => 'Test String', + "custom_{$this->individualStudentFieldID}" => 'Test String', ]; $result = $this->callAPISuccess('contact', 'create', $params); $this->assertNotNull($result['id']); - $entityValues = CRM_Core_BAO_CustomValueTable::getEntityValues($this->individualStudent); - $elements["custom_{$this->IndiStudentField['id']}"] = $entityValues["{$this->IndiStudentField['id']}"]; + $entityValues = CRM_Core_BAO_CustomValueTable::getEntityValues($this->individualStudentContactID); + $elements["custom_{$this->individualStudentFieldID}"] = $entityValues["{$this->individualStudentFieldID}"]; // Check the Value in Database - $this->assertEquals($elements["custom_{$this->IndiStudentField['id']}"], 'Test String'); + $this->assertEquals($elements["custom_{$this->individualStudentFieldID}"], 'Test String'); } /** @@ -208,15 +240,15 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { public function testAddIndividualStudentCustomDataToIndividualParent() { $params = [ - 'contact_id' => $this->individualParent, + 'contact_id' => $this->individualParentContactID, 'contact_type' => 'Individual', - "custom_{$this->IndiStudentField['id']}" => 'Test String', + "custom_{$this->individualStudentFieldID}" => 'Test String', // so that undefined_fields is returned 'debug' => 1, ]; $contact = $this->callAPISuccess('contact', 'create', $params); $this->assertTrue(is_array($contact['undefined_fields']), __LINE__); - $this->assertTrue(in_array("custom_{$this->IndiStudentField['id']}", $contact['undefined_fields']), __LINE__); + $this->assertTrue(in_array("custom_{$this->individualStudentFieldID}", $contact['undefined_fields']), __LINE__); } // Retrieve Methods @@ -227,23 +259,23 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { public function testRetrieveValidCustomDataToIndividual() { $params = [ - 'contact_id' => $this->individual, + 'contact_id' => $this->individualContactID, 'contact_type' => 'Individual', - "custom_" . $this->IndividualField['id'] => 'Test String', + "custom_" . $this->individualFieldID => 'Test String', ]; $contact = $this->callAPISuccess('contact', 'create', $params); $this->assertAPISuccess($contact); $params = [ - 'contact_id' => $this->individual, + 'contact_id' => $this->individualContactID, 'contact_type' => 'Individual', - "return.custom_{$this->IndividualField['id']}" => 1, + "return.custom_{$this->individualFieldID}" => 1, ]; $getContact = $this->callAPISuccess('contact', 'get', $params); - $this->assertEquals($getContact['values'][$this->individual]["custom_" . $this->IndividualField['id']], 'Test String'); + $this->assertEquals($getContact['values'][$this->individualContactID]["custom_" . $this->individualFieldID], 'Test String'); } /** @@ -252,24 +284,24 @@ class api_v3_CustomValueContactTypeTest extends CiviUnitTestCase { public function testRetrieveValidCustomDataToIndividualStudent() { $params = [ - 'contact_id' => $this->individualStudent, + 'contact_id' => $this->individualStudentContactID, 'contact_type' => 'Individual', 'contact_sub_type' => 'Student', - "custom_{$this->IndiStudentField['id']}" => 'Test String', + "custom_{$this->individualStudentFieldID}" => 'Test String', ]; $contact = $this->callAPISuccess('contact', 'create', $params); $this->assertAPISuccess($contact); $params = [ - 'contact_id' => $this->individualStudent, + 'contact_id' => $this->individualStudentContactID, 'contact_type' => 'Individual', 'contact_sub_type' => 'Student', - "return.custom_{$this->IndiStudentField['id']}" => 1, + "return.custom_{$this->individualStudentFieldID}" => 1, ]; $getContact = $this->callAPISuccess('contact', 'get', $params); - $this->assertEquals($getContact['values'][$this->individualStudent]["custom_{$this->IndiStudentField['id']}"], 'Test String'); + $this->assertEquals($getContact['values'][$this->individualStudentContactID]["custom_{$this->individualStudentFieldID}"], 'Test String'); } } -- 2.25.1