4 * Class CRM_Core_BAO_UFGroupTest
7 class CRM_Core_BAO_UFGroupTest
extends CiviUnitTestCase
{
9 public function implementHookPre($op, $objectName, $id, &$params) {
10 if ($objectName == 'UFGroup') {
11 if ($op == 'create') {
12 $params['is_active'] = 0;
14 elseif ($op == 'delete') {
15 $systemLog = $this->callAPISuccess('SystemLog', 'create', [
16 'message' => "CRM_Core_BAO_UFGroupTest::implementHookPre $id",
23 public function implementHookPost($op, $objectName, $objectId, &$objectRef) {
24 if ($objectName == 'UFGroup') {
25 if ($op == 'create') {
26 $objectRef->is_active
= 0;
28 elseif ($op == 'delete') {
29 $systemLog = $this->callAPISuccess('SystemLog', 'create', [
30 'message' => "CRM_Core_BAO_UFGroupTest::implementHookPost $objectId",
37 public function testPreHookIsCalledForCreate() {
38 // Specify pre hook implementation.
39 $this->hookClass
->setHook('civicrm_pre', array($this, 'implementHookPre'));
41 // Create a ufgroup with BAO.
43 'title' => 'testPreHookIsCalledForCreate',
46 $ufGroup = CRM_Core_BAO_UFGroup
::add($params);
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');
53 public function testPreHookIsCalledForDelete() {
54 // Specify pre hook implementation.
55 $this->hookClass
->setHook('civicrm_pre', array($this, 'implementHookPre'));
57 // Create a ufgroup with BAO.
59 'title' => 'testPreHookIsCalledForDelete',
62 $ufGroup = CRM_Core_BAO_UFGroup
::add($params);
63 $ufGroupID = $ufGroup->id
;
64 $ufGroup = CRM_Core_BAO_UFGroup
::del($ufGroupID);
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",
72 $this->assertEquals(1, $systemLogCount, 'There should be one system log entry with message "CRM_Core_BAO_UFGroupTest::implementHookPre ' . $ufGroupID . '"');
75 public function testPostHookIsCalledForCreate() {
76 $this->hookClass
->setHook('civicrm_post', array($this, 'implementHookPost'));
79 'title' => 'testPostHookIsCalledForCreate',
82 $ufGroup = CRM_Core_BAO_UFGroup
::add($params);
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');
89 public function testPostHookIsCalledForDelete() {
90 $this->hookClass
->setHook('civicrm_post', array($this, 'implementHookPost'));
93 'title' => 'testPostHookIsCalledForDelete',
96 $ufGroup = CRM_Core_BAO_UFGroup
::add($params);
97 $ufGroupID = $ufGroup->id
;
98 $ufGroup = CRM_Core_BAO_UFGroup
::del($ufGroupID);
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",
106 $this->assertEquals(1, $systemLogCount, 'There should be one system log entry with message "CRM_Core_BAO_UFGroupTest::implementHookPost ' . $ufGroupID . '"');