Passed
Pull Request — developer (#15940)
by Arkadiusz
42:03 queued 23:08
created

J_MultiCompany::testCreateMultiCompanyRecords()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 5
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * MultiCompany test class.
5
 *
6
 * @package   Tests
7
 *
8
 * @copyright YetiForce S.A.
9
 * @license   YetiForce Public License 5.0 (licenses/LicenseEN.txt or yetiforce.com)
10
 * @author    Sławomir Rembiesa <[email protected]>
11
 */
12
13
namespace Tests\Base;
14
15
class J_MultiCompany extends \Tests\Base
16
{
17
	/**
18
	 * Temporary MultiCompany record object.
19
	 *
20
	 * @var \Vtiger_Record_Model
21
	 */
22
	protected static $recordMultiCompany;
23
24
	/**
25
	 * Temporary Roles Settings record object.
26
	 *
27
	 * @var \Settings_Roles_Record_Model
28
	 */
29
	protected static $role;
30
31
	/**
32
	 * Creating MultiCompany module record for tests.
33
	 *
34
	 * @param bool $cache
35
	 *
36
	 * @return \Vtiger_Record_Model
37
	 */
38
	public static function createMultiCompanyRecord(bool $cache = true): \Vtiger_Record_Model
39
	{
40
		if (self::$recordMultiCompany && $cache) {
41
			return self::$recordMultiCompany;
42
		}
43
		$recordModel = \Vtiger_Record_Model::getCleanInstance('MultiCompany');
44
		$recordModel->set('company_name', 'TestMulti sp. z o.o.');
45
		$recordModel->set('companyid1', '23123214141412');
46
		$recordModel->set('email1', '[email protected]');
47
		$recordModel->set('assigned_user_id', \App\User::getCurrentUserId());
48
		$recordModel->save();
49
		if ($cache) {
50
			self::$recordMultiCompany = $recordModel;
51
		}
52
		return $recordModel;
53
	}
54
55
	/**
56
	 * Creating new role for test.
57
	 *
58
	 * @param bool $cache
59
	 *
60
	 * @return \Settings_Roles_Record_Model
61
	 */
62
	public static function createRole(bool $cache = true): \Settings_Roles_Record_Model
63
	{
64
		$recordModel = new \Settings_Roles_Record_Model();
65
		$parentRoleId = 'H1';
66
67
		$parentRole = \Settings_Roles_Record_Model::getInstanceById($parentRoleId);
0 ignored issues
show
Bug introduced by
$parentRoleId of type string is incompatible with the type integer expected by parameter $roleId of Settings_Roles_Record_Model::getInstanceById(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

67
		$parentRole = \Settings_Roles_Record_Model::getInstanceById(/** @scrutinizer ignore-type */ $parentRoleId);
Loading history...
68
		$recordModel->set('changeowner', 1)
69
			->set('searchunpriv', null)
70
			->set('listrelatedrecord', 0)
71
			->set('previewrelatedrecord',0)
72
			->set('editrelatedrecord', 0)
73
			->set('permissionsrelatedfield', 0)
74
			->set('globalsearchadv', 1)
75
			->set('assignedmultiowner', 1)
76
			->set('clendarallorecords', 3)
77
			->set('company', 1)
78
			->set('auto_assign', 0)
79
			->set('allowassignedrecordsto', 1);
80
81
		$recordModel->set('rolename', 'TestMultiSelect');
82
		$parentRole->addChildRole($recordModel);
83
84
		if ($cache) {
85
			self::$role = $recordModel;
86
		}
87
88
		return $recordModel;
89
	}
90
91
	/**
92
	 * Testing creating MultiCompany record.
93
	 *
94
	 * @return void
95
	 */
96
	public function testCreateMultiCompanyRecords(): void
97
	{
98
		$multiCompany = self::createMultiCompanyRecord(true);
99
		$this->assertIsNumeric($multiCompany->getId());
100
		$this->assertInstanceOf(\Vtiger_Record_Model::class, $multiCompany);
101
	}
102
103
	/**
104
	 * Testing privilege to delete.
105
	 *
106
	 * @return void
107
	 */
108
	public function testPrivilegeToDelete(): void
109
	{
110
		$this->assertTrue(self::$recordMultiCompany->privilegeToDelete());
111
	}
112
113
	/**
114
	 * Testing creating role.
115
	 *
116
	 * @return void
117
	 */
118
	public function testCreateRole(): void
119
	{
120
		$role = self::createRole();
121
		$this->assertIsString($role->getId());
122
		$this->assertInstanceOf(\Settings_Roles_Record_Model::class, $role);
123
	}
124
125
	/**
126
	 * Testing not privilege to delete.
127
	 *
128
	 * @return void
129
	 */
130
	public function testNotPrivilegeToDelete(): void
131
	{
132
		self::$role->set('company', self::$recordMultiCompany->getId());
133
		self::$role->save();
134
135
		self::$recordMultiCompany->clearPrivilegesCache();
136
137
		$this->assertFalse(self::$recordMultiCompany->privilegeToDelete());
138
	}
139
140
	/**
141
	 * Cleaning after tests
142
	 *
143
	 * @return void
144
	 */
145
	public static function tearDownAfterClass(): void
146
	{
147
		self::$recordMultiCompany->delete();
148
		self::$role->delete(\Settings_Roles_Record_Model::getInstanceById('H1'));
0 ignored issues
show
Bug introduced by
'H1' of type string is incompatible with the type integer expected by parameter $roleId of Settings_Roles_Record_Model::getInstanceById(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

148
		self::$role->delete(\Settings_Roles_Record_Model::getInstanceById(/** @scrutinizer ignore-type */ 'H1'));
Loading history...
149
	}
150
}
151