blob: ef05f6578dcdff78ac5c68abdc3219e8d1a17f04 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<?php
namespace Civi\Test\Api4\Query;
use Civi\Api4\Contact;
use Civi\Api4\OptionGroup;
use Civi\Api4\OptionValue;
use Civi\Test\Api4\UnitTestCase;
/**
* Class OneToOneJoinTest
* @package Civi\Test\Api4\Query
* @group headless
*/
class OneToOneJoinTest extends UnitTestCase {
public function testOneToOneJoin() {
$armenianContact = Contact::create()
->addValue('first_name', 'Contact')
->addValue('last_name', 'One')
->addValue('contact_type', 'Individual')
->addValue('preferred_language', 'hy_AM')
->execute()
->first();
$basqueContact = Contact::create()
->addValue('first_name', 'Contact')
->addValue('last_name', 'Two')
->addValue('contact_type', 'Individual')
->addValue('preferred_language', 'eu_ES')
->execute()
->first();
$contacts = Contact::get()
->addWhere('id', 'IN', [$armenianContact['id'], $basqueContact['id']])
->addSelect('preferred_language.label')
->addSelect('last_name')
->execute()
->indexBy('last_name')
->getArrayCopy();
$this->assertEquals($contacts['One']['preferred_language']['label'], 'Armenian');
$this->assertEquals($contacts['Two']['preferred_language']['label'], 'Basque');
}
}
|