X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fapi%2Fv4%2FAction%2FGetExtraFieldsTest.php;h=fbdbd0c5792f6ad9a04d221331c753c13fd4b6c6;hb=7392872b837fd644d37c5db75cbaea302b40988d;hp=adab653b86a3ae94ff2b0611cfef3317336ab7d5;hpb=de6eb1ef8e5ab37e95cbbb06dc740cbd783e3fa7;p=civicrm-core.git diff --git a/tests/phpunit/api/v4/Action/GetExtraFieldsTest.php b/tests/phpunit/api/v4/Action/GetExtraFieldsTest.php index adab653b86..fbdbd0c579 100644 --- a/tests/phpunit/api/v4/Action/GetExtraFieldsTest.php +++ b/tests/phpunit/api/v4/Action/GetExtraFieldsTest.php @@ -22,6 +22,7 @@ namespace api\v4\Action; use api\v4\UnitTestCase; +use Civi\Api4\Address; use Civi\Api4\Contact; /** @@ -29,17 +30,40 @@ use Civi\Api4\Contact; */ class GetExtraFieldsTest extends UnitTestCase { - public function testBAOFieldsWillBeReturned() { - $returnedFields = Contact::getFields() - ->execute() - ->getArrayCopy(); + public function testGetFieldsByContactType() { + $getFields = Contact::getFields()->setCheckPermissions(FALSE)->addSelect('name')->setIncludeCustom(FALSE); - $baseFields = \CRM_Contact_BAO_Contact::fields(); - $baseFieldNames = array_column($baseFields, 'name'); - $returnedFieldNames = array_column($returnedFields, 'name'); - $notReturned = array_diff($baseFieldNames, $returnedFieldNames); + $baseFields = array_column(\CRM_Contact_BAO_Contact::fields(), 'name'); + $returnedFields = $getFields->execute()->column('name'); + $notReturned = array_diff($baseFields, $returnedFields); + // With no contact_type specified, all fields should be returned $this->assertEmpty($notReturned); + + $individualFields = $getFields->setValues(['contact_type' => 'Individual'])->execute()->column('name'); + $this->assertNotContains('sic_code', $individualFields); + $this->assertNotContains('contact_type', $individualFields); + $this->assertContains('first_name', $individualFields); + + $organizationFields = $getFields->setValues(['contact_type' => 'Organization'])->execute()->column('name'); + $this->assertContains('sic_code', $organizationFields); + $this->assertNotContains('contact_type', $organizationFields); + $this->assertNotContains('first_name', $organizationFields); + $this->assertNotContains('household_name', $organizationFields); + } + + public function testGetOptionsAddress() { + $getFields = Address::getFields()->setCheckPermissions(FALSE)->addWhere('name', '=', 'state_province_id')->setLoadOptions(TRUE); + + $usOptions = $getFields->setValues(['country_id' => 1228])->execute()->first(); + + $this->assertContains('Alabama', $usOptions['options']); + $this->assertNotContains('Alberta', $usOptions['options']); + + $caOptions = $getFields->setValues(['country_id' => 1039])->execute()->first(); + + $this->assertNotContains('Alabama', $caOptions['options']); + $this->assertContains('Alberta', $caOptions['options']); } }