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
47
48
49
50
51
52
53
|
<?php
namespace Civi\Test\Api4\Action;
use Civi\Test\Api4\UnitTestCase;
/**
* @group headless
*/
class ChainTest extends UnitTestCase {
public function testGetActionsWithFields() {
$actions = \Civi\Api4\Activity::getActions()
->addChain('fields', \Civi\Api4\Activity::getFields()->setAction('$name'), 'name')
->execute()
->indexBy('name');
$this->assertEquals('Array', $actions['getActions']['fields']['params']['data_type']);
}
public function testGetEntityWithActions() {
$entities = \Civi\Api4\Entity::get()
->addSelect('name')
->setChain([
'actions' => ['$name', 'getActions', ['select' => ['name']], 'name']
])
->execute()
->indexBy('name');
$this->assertArrayHasKey('replace', $entities['Contact']['actions']);
$this->assertArrayHasKey('getLinks', $entities['Entity']['actions']);
$this->assertArrayNotHasKey('replace', $entities['Entity']['actions']);
}
public function testContactCreateWithGroup() {
$firstName = uniqid('cwtf');
$lastName = uniqid('cwtl');
$contact = \Civi\Api4\Contact::create()
->addValue('first_name', $firstName)
->addValue('last_name', $lastName)
->addChain('group', \Civi\Api4\Group::create()->addValue('title', '$display_name'), 0)
->addChain('add_to_group', \Civi\Api4\GroupContact::create()->addValue('contact_id', '$id')->addValue('group_id', '$group.id'), 0)
->addChain('check_group', \Civi\Api4\GroupContact::get()->addWhere('group_id', '=', '$group.id'))
->execute()
->first();
$this->assertCount(1, $contact['check_group']);
$this->assertEquals($contact['id'], $contact['check_group'][0]['contact_id']);
$this->assertEquals($contact['group']['id'], $contact['check_group'][0]['group_id']);
}
}
|