*
* @package CRM
* @copyright CiviCRM LLC https://civicrm.org/licensing
- * $Id$
- *
*/
public function testWithSingleField() {
- $customGroup = CustomGroup::create()
- ->setCheckPermissions(FALSE)
+ $customGroup = CustomGroup::create(FALSE)
->addValue('name', 'MyIndividualFields')
->addValue('extends', 'Individual')
->execute()
->first();
- CustomField::create()
- ->setCheckPermissions(FALSE)
+ CustomField::create(FALSE)
->addValue('label', 'FavColor')
->addValue('custom_group_id', $customGroup['id'])
->addValue('html_type', 'Text')
->execute();
// Individual fields should show up when contact_type = null|Individual but not other contact types
- $getFields = Contact::getFields()->setCheckPermissions(FALSE);
+ $getFields = Contact::getFields(FALSE);
$this->assertContains('MyIndividualFields.FavColor', $getFields->execute()->column('name'));
$this->assertContains('MyIndividualFields.FavColor', $getFields->setValues(['contact_type' => 'Individual'])->execute()->column('name'));
$this->assertNotContains('MyIndividualFields.FavColor', $getFields->setValues(['contact_type' => 'Household'])->execute()->column('name'));
- $contactId = Contact::create()
- ->setCheckPermissions(FALSE)
+ $contactId = Contact::create(FALSE)
->addValue('first_name', 'Johann')
->addValue('last_name', 'Tester')
->addValue('contact_type', 'Individual')
->execute()
->first()['id'];
- $contact = Contact::get()
- ->setCheckPermissions(FALSE)
+ $contact = Contact::get(FALSE)
->addSelect('first_name')
->addSelect('MyIndividualFields.FavColor')
->addWhere('id', '=', $contactId)
->addValue('MyIndividualFields.FavColor', 'Blue')
->execute();
- $contact = Contact::get()
- ->setCheckPermissions(FALSE)
+ $contact = Contact::get(FALSE)
->addSelect('MyIndividualFields.FavColor')
->addWhere('id', '=', $contactId)
->execute()
public function testWithTwoFields() {
- $customGroup = CustomGroup::create()
- ->setCheckPermissions(FALSE)
+ // First custom set
+ CustomGroup::create(FALSE)
->addValue('name', 'MyContactFields')
->addValue('extends', 'Contact')
- ->execute()
- ->first();
-
- CustomField::create()
- ->setCheckPermissions(FALSE)
- ->addValue('label', 'FavColor')
- ->addValue('custom_group_id', $customGroup['id'])
- ->addValue('html_type', 'Text')
- ->addValue('data_type', 'String')
+ ->addChain('field1', CustomField::create()
+ ->addValue('label', 'FavColor')
+ ->addValue('custom_group_id', '$id')
+ ->addValue('html_type', 'Text')
+ ->addValue('data_type', 'String'))
+ ->addChain('field2', CustomField::create()
+ ->addValue('label', 'FavFood')
+ ->addValue('custom_group_id', '$id')
+ ->addValue('html_type', 'Text')
+ ->addValue('data_type', 'String'))
->execute();
- CustomField::create()
- ->setCheckPermissions(FALSE)
- ->addValue('label', 'FavFood')
- ->addValue('custom_group_id', $customGroup['id'])
- ->addValue('html_type', 'Text')
- ->addValue('data_type', 'String')
+ // Second custom set
+ CustomGroup::create(FALSE)
+ ->addValue('name', 'MyContactFields2')
+ ->addValue('extends', 'Contact')
+ ->addChain('field1', CustomField::create()
+ ->addValue('label', 'FavColor')
+ ->addValue('custom_group_id', '$id')
+ ->addValue('html_type', 'Text')
+ ->addValue('data_type', 'String'))
+ ->addChain('field2', CustomField::create()
+ ->addValue('label', 'FavFood')
+ ->addValue('custom_group_id', '$id')
+ ->addValue('html_type', 'Text')
+ ->addValue('data_type', 'String'))
->execute();
- $contactId1 = Contact::create()
- ->setCheckPermissions(FALSE)
+ $contactId1 = Contact::create(FALSE)
->addValue('first_name', 'Johann')
->addValue('last_name', 'Tester')
->addValue('MyContactFields.FavColor', 'Red')
->execute()
->first()['id'];
- $contactId2 = Contact::create()
- ->setCheckPermissions(FALSE)
+ $contactId2 = Contact::create(FALSE)
->addValue('first_name', 'MaryLou')
->addValue('last_name', 'Tester')
->addValue('MyContactFields.FavColor', 'Purple')
->execute()
->first()['id'];
- $contact = Contact::get()
- ->setCheckPermissions(FALSE)
+ $contact = Contact::get(FALSE)
->addSelect('first_name')
->addSelect('MyContactFields.FavColor')
->addSelect('MyContactFields.FavFood')
->addWhere('MyContactFields.FavFood', '=', 'Cherry')
->execute()
->first();
-
$this->assertArrayHasKey('MyContactFields.FavColor', $contact);
$this->assertEquals('Red', $contact['MyContactFields.FavColor']);
+ // By default custom fields are not returned
+ $contact = Contact::get(FALSE)
+ ->addWhere('id', '=', $contactId1)
+ ->addWhere('MyContactFields.FavColor', '=', 'Red')
+ ->addWhere('MyContactFields.FavFood', '=', 'Cherry')
+ ->execute()
+ ->first();
+ $this->assertArrayNotHasKey('MyContactFields.FavColor', $contact);
+
+ // Update 2nd set and ensure 1st hasn't changed
+ Contact::update()
+ ->addWhere('id', '=', $contactId1)
+ ->addValue('MyContactFields2.FavColor', 'Orange')
+ ->addValue('MyContactFields2.FavFood', 'Tangerine')
+ ->execute();
+ $contact = Contact::get(FALSE)
+ ->addSelect('MyContactFields.FavColor', 'MyContactFields2.FavColor', 'MyContactFields.FavFood', 'MyContactFields2.FavFood')
+ ->addWhere('id', '=', $contactId1)
+ ->execute()
+ ->first();
+ $this->assertEquals('Red', $contact['MyContactFields.FavColor']);
+ $this->assertEquals('Orange', $contact['MyContactFields2.FavColor']);
+ $this->assertEquals('Cherry', $contact['MyContactFields.FavFood']);
+ $this->assertEquals('Tangerine', $contact['MyContactFields2.FavFood']);
+
+ // Update 1st set and ensure 2st hasn't changed
Contact::update()
->addWhere('id', '=', $contactId1)
->addValue('MyContactFields.FavColor', 'Blue')
->execute();
-
- $contact = Contact::get()
- ->setCheckPermissions(FALSE)
- ->addSelect('MyContactFields.FavColor')
+ $contact = Contact::get(FALSE)
+ ->addSelect('custom.*')
->addWhere('id', '=', $contactId1)
->execute()
->first();
-
$this->assertEquals('Blue', $contact['MyContactFields.FavColor']);
+ $this->assertEquals('Orange', $contact['MyContactFields2.FavColor']);
+ $this->assertEquals('Cherry', $contact['MyContactFields.FavFood']);
+ $this->assertEquals('Tangerine', $contact['MyContactFields2.FavFood']);
- $search = Contact::get()
- ->setCheckPermissions(FALSE)
+ $search = Contact::get(FALSE)
->addClause('OR', ['MyContactFields.FavColor', '=', 'Blue'], ['MyContactFields.FavFood', '=', 'Grapes'])
->addSelect('id')
->addOrderBy('id')
$this->assertEquals([$contactId1, $contactId2], array_keys((array) $search));
- $search = Contact::get()
- ->setCheckPermissions(FALSE)
+ $search = Contact::get(FALSE)
->addClause('NOT', ['MyContactFields.FavColor', '=', 'Purple'], ['MyContactFields.FavFood', '=', 'Grapes'])
->addSelect('id')
->addOrderBy('id')
$this->assertNotContains($contactId2, array_keys((array) $search));
- $search = Contact::get()
- ->setCheckPermissions(FALSE)
+ $search = Contact::get(FALSE)
->addClause('NOT', ['MyContactFields.FavColor', '=', 'Purple'], ['MyContactFields.FavFood', '=', 'Grapes'])
->addSelect('id')
->addOrderBy('id')
$this->assertContains($contactId1, array_keys((array) $search));
$this->assertNotContains($contactId2, array_keys((array) $search));
- $search = Contact::get()
- ->setCheckPermissions(FALSE)
+ $search = Contact::get(FALSE)
->setWhere([['NOT', ['OR', [['MyContactFields.FavColor', '=', 'Blue'], ['MyContactFields.FavFood', '=', 'Grapes']]]]])
->addSelect('id')
->addOrderBy('id')