4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC. All rights reserved. |
7 | This work is published under the GNU AGPLv3 license with some |
8 | permitted exceptions and without any warranty. For full license |
9 | and copyright information, see https://civicrm.org/licensing |
10 +--------------------------------------------------------------------+
16 * @copyright CiviCRM LLC https://civicrm.org/licensing
20 namespace api\v
4\Action
;
22 use Civi\Api4\Activity
;
23 use Civi\Api4\Contact
;
24 use api\v
4\UnitTestCase
;
29 class NullValueTest
extends UnitTestCase
{
31 public function setUpHeadless() {
32 $format = '{contact.first_name}{ }{contact.last_name}';
33 \Civi
::settings()->set('display_name_format', $format);
34 return parent
::setUpHeadless();
37 public function testStringNull() {
38 $contact = Contact
::create()
39 ->setCheckPermissions(FALSE)
40 ->addValue('first_name', 'Joseph')
41 ->addValue('last_name', 'null')
42 ->addValue('contact_type', 'Individual')
46 $this->assertSame('Null', $contact['last_name']);
47 $this->assertSame('Joseph Null', $contact['display_name']);
50 public function testSettingToNull() {
51 $contact = Contact
::create()
52 ->setCheckPermissions(FALSE)
53 ->addValue('first_name', 'ILoveMy')
54 ->addValue('last_name', 'LastName')
55 ->addValue('contact_type', 'Individual')
59 $this->assertSame('ILoveMy LastName', $contact['display_name']);
60 $contactId = $contact['id'];
62 $contact = Contact
::update()
63 ->setCheckPermissions(FALSE)
64 ->addWhere('id', '=', $contactId)
65 ->addValue('last_name', NULL)
69 $this->assertSame(NULL, $contact['last_name']);
70 $this->assertSame('ILoveMy', $contact['display_name']);
73 public function testSaveWithReload() {
74 $contact = Contact
::create()
75 ->setCheckPermissions(FALSE)
76 ->addValue('first_name', 'Firsty')
77 ->addValue('last_name', 'Lasty')
81 $activity = Activity
::create()
82 ->setCheckPermissions(FALSE)
83 ->addValue('source_contact_id', $contact['id'])
84 ->addValue('activity_type_id', 1)
85 ->addValue('subject', 'hello')
89 $this->assertEquals('hello', $activity['subject']);
91 $saved = Activity
::save()
92 ->setCheckPermissions(FALSE)
93 ->addRecord(['id' => $activity['id'], 'subject' => NULL])
97 $this->assertNull($saved['subject']);
98 $this->assertArrayNotHasKey('activity_date_time', $saved);
100 $saved = Activity
::save()
101 ->setCheckPermissions(FALSE)
102 ->addRecord(['id' => $activity['id'], 'subject' => NULL])
107 $this->assertNull($saved['subject']);
108 $this->assertArrayHasKey('activity_date_time', $saved);