4 +--------------------------------------------------------------------+
6 +--------------------------------------------------------------------+
7 | Copyright CiviCRM LLC (c) 2004-2020 |
8 +--------------------------------------------------------------------+
9 | This file is a part of CiviCRM. |
11 | CiviCRM is free software; you can copy, modify, and distribute it |
12 | under the terms of the GNU Affero General Public License |
13 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
15 | CiviCRM is distributed in the hope that it will be useful, but |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. |
20 | You should have received a copy of the GNU Affero General Public |
21 | License and the CiviCRM Licensing Exception along |
22 | with this program; if not, contact CiviCRM LLC |
23 | at info[AT]civicrm[DOT]org. If you have questions about the |
24 | GNU Affero General Public License or the licensing of CiviCRM, |
25 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
26 +--------------------------------------------------------------------+
32 * @copyright CiviCRM LLC https://civicrm.org/licensing
38 namespace api\v
4\Action
;
40 use api\v
4\UnitTestCase
;
45 class ChainTest
extends UnitTestCase
{
47 public function testGetActionsWithFields() {
48 $actions = \Civi\Api4\Activity
::getActions()
49 ->addChain('fields', \Civi\Api4\Activity
::getFields()->setAction('$name'), 'name')
53 $this->assertEquals('Array', $actions['getActions']['fields']['params']['data_type']);
56 public function testGetEntityWithActions() {
57 $entities = \Civi\Api4\Entity
::get()
60 'actions' => ['$name', 'getActions', ['select' => ['name']], 'name'],
65 $this->assertArrayHasKey('replace', $entities['Contact']['actions']);
66 $this->assertArrayHasKey('getLinks', $entities['Entity']['actions']);
67 $this->assertArrayNotHasKey('replace', $entities['Entity']['actions']);
70 public function testContactCreateWithGroup() {
71 $firstName = uniqid('cwtf');
72 $lastName = uniqid('cwtl');
74 $contact = \Civi\Api4\Contact
::create()
75 ->addValue('first_name', $firstName)
76 ->addValue('last_name', $lastName)
77 ->addChain('group', \Civi\Api4\Group
::create()->addValue('title', '$display_name'), 0)
78 ->addChain('add_to_group', \Civi\Api4\GroupContact
::create()->addValue('contact_id', '$id')->addValue('group_id', '$group.id'), 0)
79 ->addChain('check_group', \Civi\Api4\GroupContact
::get()->addWhere('group_id', '=', '$group.id'))
83 $this->assertCount(1, $contact['check_group']);
84 $this->assertEquals($contact['id'], $contact['check_group'][0]['contact_id']);
85 $this->assertEquals($contact['group']['id'], $contact['check_group'][0]['group_id']);