Merge pull request #20802 from civicrm/5.39
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / UFGroupTest.php
CommitLineData
214a3703 1<?php
2
3/**
4 * Class CRM_Core_BAO_UFGroupTest
5 * @group headless
6 */
7class CRM_Core_BAO_UFGroupTest extends CiviUnitTestCase {
8
9 public function implementHookPre($op, $objectName, $id, &$params) {
10 if ($objectName == 'UFGroup') {
11 if ($op == 'create') {
12 $params['is_active'] = 0;
13 }
14 elseif ($op == 'delete') {
15 $systemLog = $this->callAPISuccess('SystemLog', 'create', [
16 'message' => "CRM_Core_BAO_UFGroupTest::implementHookPre $id",
17 'level' => 'info',
18 ]);
19 }
20 }
21 }
22
23 public function implementHookPost($op, $objectName, $objectId, &$objectRef) {
24 if ($objectName == 'UFGroup') {
25 if ($op == 'create') {
26 $objectRef->is_active = 0;
27 }
28 elseif ($op == 'delete') {
29 $systemLog = $this->callAPISuccess('SystemLog', 'create', [
30 'message' => "CRM_Core_BAO_UFGroupTest::implementHookPost $objectId",
31 'level' => 'info',
32 ]);
33 }
34 }
35 }
36
37 public function testPreHookIsCalledForCreate() {
38 // Specify pre hook implementation.
39 $this->hookClass->setHook('civicrm_pre', array($this, 'implementHookPre'));
40
41 // Create a ufgroup with BAO.
42 $params = [
43 'title' => 'testPreHookIsCalledForCreate',
44 'is_active' => 1,
45 ];
46 $ufGroup = CRM_Core_BAO_UFGroup::add($params);
47
48 // Assert that pre hook implemntation was called.
49 $this->assertEquals('testPreHookIsCalledForCreate', $ufGroup->title);
50 $this->assertEquals(0, $ufGroup->is_active, 'Is active should be 0');
51 }
52
53 public function testPreHookIsCalledForDelete() {
54 // Specify pre hook implementation.
55 $this->hookClass->setHook('civicrm_pre', array($this, 'implementHookPre'));
56
57 // Create a ufgroup with BAO.
58 $params = [
59 'title' => 'testPreHookIsCalledForDelete',
60 'is_active' => 1,
61 ];
62 $ufGroup = CRM_Core_BAO_UFGroup::add($params);
63 $ufGroupID = $ufGroup->id;
64 $ufGroup = CRM_Core_BAO_UFGroup::del($ufGroupID);
65
66 // Assert that pre hook implemntation was called for delete op.
67 $systemLogCount = $this->callAPISuccess('SystemLog', 'getcount', [
68 'message' => "CRM_Core_BAO_UFGroupTest::implementHookPre $ufGroupID",
69 'level' => 'info',
70 ]);
71
72 $this->assertEquals(1, $systemLogCount, 'There should be one system log entry with message "CRM_Core_BAO_UFGroupTest::implementHookPre ' . $ufGroupID . '"');
73 }
74
75 public function testPostHookIsCalledForCreate() {
76 $this->hookClass->setHook('civicrm_post', array($this, 'implementHookPost'));
77
78 $params = [
79 'title' => 'testPostHookIsCalledForCreate',
80 'is_active' => 1,
81 ];
82 $ufGroup = CRM_Core_BAO_UFGroup::add($params);
83
84 // Assert that pre hook implemntation was called.
85 $this->assertEquals('testPostHookIsCalledForCreate', $ufGroup->title);
86 $this->assertEquals(0, $ufGroup->is_active, 'Is active should be 0');
87 }
88
89 public function testPostHookIsCalledForDelete() {
90 $this->hookClass->setHook('civicrm_post', array($this, 'implementHookPost'));
91
92 $params = [
93 'title' => 'testPostHookIsCalledForDelete',
94 'is_active' => 1,
95 ];
96 $ufGroup = CRM_Core_BAO_UFGroup::add($params);
97 $ufGroupID = $ufGroup->id;
98 $ufGroup = CRM_Core_BAO_UFGroup::del($ufGroupID);
99
100 // Assert that pre hook implemntation was called for delete op.
101 $systemLogCount = $this->callAPISuccess('SystemLog', 'getcount', [
102 'message' => "CRM_Core_BAO_UFGroupTest::implementHookPost $ufGroupID",
103 'level' => 'info',
104 ]);
105
106 $this->assertEquals(1, $systemLogCount, 'There should be one system log entry with message "CRM_Core_BAO_UFGroupTest::implementHookPost ' . $ufGroupID . '"');
107 }
108
109}