Merge pull request #17163 from jitendrapurohit/core-1731
[civicrm-core.git] / tests / phpunit / api / v4 / Action / NullValueTest.php
CommitLineData
19b53e5b
C
1<?php
2
380f3545
TO
3/*
4 +--------------------------------------------------------------------+
7d61e75f 5 | Copyright CiviCRM LLC. All rights reserved. |
380f3545 6 | |
7d61e75f
TO
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 |
380f3545
TO
10 +--------------------------------------------------------------------+
11 */
12
13/**
14 *
15 * @package CRM
ca5cec67 16 * @copyright CiviCRM LLC https://civicrm.org/licensing
380f3545
TO
17 */
18
19
19b53e5b
C
20namespace api\v4\Action;
21
a4c7afc0 22use Civi\Api4\Activity;
19b53e5b
C
23use Civi\Api4\Contact;
24use api\v4\UnitTestCase;
25
26/**
27 * @group headless
28 */
29class NullValueTest extends UnitTestCase {
30
31 public function setUpHeadless() {
32 $format = '{contact.first_name}{ }{contact.last_name}';
33 \Civi::settings()->set('display_name_format', $format);
34 return parent::setUpHeadless();
35 }
36
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')
43 ->execute()
44 ->first();
45
46 $this->assertSame('Null', $contact['last_name']);
47 $this->assertSame('Joseph Null', $contact['display_name']);
48 }
49
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')
56 ->execute()
57 ->first();
58
59 $this->assertSame('ILoveMy LastName', $contact['display_name']);
60 $contactId = $contact['id'];
61
62 $contact = Contact::update()
63 ->setCheckPermissions(FALSE)
64 ->addWhere('id', '=', $contactId)
65 ->addValue('last_name', NULL)
66 ->execute()
67 ->first();
68
69 $this->assertSame(NULL, $contact['last_name']);
70 $this->assertSame('ILoveMy', $contact['display_name']);
71 }
72
a4c7afc0
CW
73 public function testSaveWithReload() {
74 $contact = Contact::create()
75 ->setCheckPermissions(FALSE)
76 ->addValue('first_name', 'Firsty')
77 ->addValue('last_name', 'Lasty')
78 ->execute()
79 ->first();
80
81 $activity = Activity::create()
82 ->setCheckPermissions(FALSE)
83 ->addValue('source_contact_id', $contact['id'])
84 ->addValue('activity_type_id', 1)
85 ->addValue('subject', 'hello')
86 ->execute()
87 ->first();
88
89 $this->assertEquals('hello', $activity['subject']);
90
91 $saved = Activity::save()
92 ->setCheckPermissions(FALSE)
93 ->addRecord(['id' => $activity['id'], 'subject' => NULL])
94 ->execute()
95 ->first();
96
97 $this->assertNull($saved['subject']);
98 $this->assertArrayNotHasKey('activity_date_time', $saved);
99
100 $saved = Activity::save()
101 ->setCheckPermissions(FALSE)
102 ->addRecord(['id' => $activity['id'], 'subject' => NULL])
103 ->setReload(TRUE)
104 ->execute()
105 ->first();
106
107 $this->assertNull($saved['subject']);
108 $this->assertArrayHasKey('activity_date_time', $saved);
109
110 }
111
19b53e5b 112}