214a3703 |
1 | <?php |
2 | |
3 | /** |
4 | * Class CRM_Core_BAO_UFGroupTest |
5 | * @group headless |
6 | */ |
7 | class 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 | } |