Merge pull request #17163 from jitendrapurohit/core-1731
[civicrm-core.git] / tests / phpunit / api / v4 / Action / NullValueTest.php
index cc3030c91c74aa3752dd7c278507732784936dc7..d52b2a348888494074cfde11b9a6fe5f49f8f1bd 100644 (file)
  *
  * @package CRM
  * @copyright CiviCRM LLC https://civicrm.org/licensing
- * $Id$
- *
  */
 
 
 namespace api\v4\Action;
 
+use Civi\Api4\Activity;
 use Civi\Api4\Contact;
 use api\v4\UnitTestCase;
 
@@ -71,4 +70,43 @@ class NullValueTest extends UnitTestCase {
     $this->assertSame('ILoveMy', $contact['display_name']);
   }
 
+  public function testSaveWithReload() {
+    $contact = Contact::create()
+      ->setCheckPermissions(FALSE)
+      ->addValue('first_name', 'Firsty')
+      ->addValue('last_name', 'Lasty')
+      ->execute()
+      ->first();
+
+    $activity = Activity::create()
+      ->setCheckPermissions(FALSE)
+      ->addValue('source_contact_id', $contact['id'])
+      ->addValue('activity_type_id', 1)
+      ->addValue('subject', 'hello')
+      ->execute()
+      ->first();
+
+    $this->assertEquals('hello', $activity['subject']);
+
+    $saved = Activity::save()
+      ->setCheckPermissions(FALSE)
+      ->addRecord(['id' => $activity['id'], 'subject' => NULL])
+      ->execute()
+      ->first();
+
+    $this->assertNull($saved['subject']);
+    $this->assertArrayNotHasKey('activity_date_time', $saved);
+
+    $saved = Activity::save()
+      ->setCheckPermissions(FALSE)
+      ->addRecord(['id' => $activity['id'], 'subject' => NULL])
+      ->setReload(TRUE)
+      ->execute()
+      ->first();
+
+    $this->assertNull($saved['subject']);
+    $this->assertArrayHasKey('activity_date_time', $saved);
+
+  }
+
 }