Skip to content

Commit 3f1c3cd

Browse files
committed
tests
1 parent 7cc2c9e commit 3f1c3cd

File tree

2 files changed

+92
-31
lines changed

2 files changed

+92
-31
lines changed

tests/functional/ChangeTest.php

Lines changed: 46 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
namespace tests\units;
3636

3737
use Change;
38+
use Change_User;
39+
use CommonITILActor;
3840
use CommonITILObject;
3941
use Glpi\Tests\DbTestCase;
4042
use PHPUnit\Framework\Attributes\DataProvider;
@@ -89,16 +91,16 @@ public function testAssignFromCategory()
8991
]);
9092
$this->assertFalse($change->isNewItem());
9193
$change->getFromDB($change->getID());
92-
$changeUser = new \Change_User();
94+
$changeUser = new Change_User();
9395
$changeGroup = new \Change_Group();
9496
$rows = $changeUser->find([
9597
'changes_id' => $change->getID(),
96-
'type' => \CommonITILActor::ASSIGN,
98+
'type' => CommonITILActor::ASSIGN,
9799
]);
98100
$this->assertCount(0, $rows);
99101
$rows = $changeGroup->find([
100102
'changes_id' => $change->getID(),
101-
'type' => \CommonITILActor::ASSIGN,
103+
'type' => CommonITILActor::ASSIGN,
102104
]);
103105

104106
// check Entity::AUTO_ASSIGN_HARDWARE_CATEGORY assignment
@@ -115,18 +117,18 @@ public function testAssignFromCategory()
115117
]);
116118
$this->assertFalse($change->isNewItem());
117119
$change->getFromDB($change->getID());
118-
$changeUser = new \Change_User();
120+
$changeUser = new Change_User();
119121
$changeGroup = new \Change_Group();
120122
$rows = $changeUser->find([
121123
'changes_id' => $change->getID(),
122124
'users_id' => 4, // Tech
123-
'type' => \CommonITILActor::ASSIGN,
125+
'type' => CommonITILActor::ASSIGN,
124126
]);
125127
$this->assertCount(0, $rows);
126128
$rows = $changeGroup->find([
127129
'changes_id' => $change->getID(),
128130
'groups_id' => $group->getID(),
129-
'type' => \CommonITILActor::ASSIGN,
131+
'type' => CommonITILActor::ASSIGN,
130132
]);
131133

132134
// check Entity::AUTO_ASSIGN_CATEGORY_HARDWARE assignment
@@ -143,28 +145,28 @@ public function testAssignFromCategory()
143145
]);
144146
$this->assertFalse($change->isNewItem());
145147
$change->getFromDB($change->getID());
146-
$changeUser = new \Change_User();
148+
$changeUser = new Change_User();
147149
$changeGroup = new \Change_Group();
148150
$rows = $changeUser->find([
149151
'changes_id' => $change->getID(),
150152
'users_id' => 4, // Tech
151-
'type' => \CommonITILActor::ASSIGN,
153+
'type' => CommonITILActor::ASSIGN,
152154
]);
153155
$this->assertCount(0, $rows);
154156
$rows = $changeGroup->find([
155157
'changes_id' => $change->getID(),
156158
'groups_id' => $group->getID(),
157-
'type' => \CommonITILActor::ASSIGN,
159+
'type' => CommonITILActor::ASSIGN,
158160
]);
159161
$this->assertCount(0, $rows);
160162
}
161163

162164
public function testGetTeamRoles(): void
163165
{
164166
$roles = Change::getTeamRoles();
165-
$this->assertContains(\CommonITILActor::ASSIGN, $roles);
166-
$this->assertContains(\CommonITILActor::OBSERVER, $roles);
167-
$this->assertContains(\CommonITILActor::REQUESTER, $roles);
167+
$this->assertContains(CommonITILActor::ASSIGN, $roles);
168+
$this->assertContains(CommonITILActor::OBSERVER, $roles);
169+
$this->assertContains(CommonITILActor::REQUESTER, $roles);
168170
}
169171

170172
public function testGetTeamRoleName(): void
@@ -201,7 +203,7 @@ public function testAutomaticStatusChange()
201203

202204
// Verify user was assigned and status doesn't change
203205
$change->loadActors();
204-
$this->assertSame(1, $change->countUsers(\CommonITILActor::ASSIGN));
206+
$this->assertSame(1, $change->countUsers(CommonITILActor::ASSIGN));
205207
$this->assertSame(CommonITILObject::INCOMING, $change->fields['status']);
206208

207209
// Change status to accepted
@@ -210,14 +212,14 @@ public function testAutomaticStatusChange()
210212
'status' => CommonITILObject::ACCEPTED,
211213
]);
212214
// Unassign change and expect the status to stay accepted
213-
$change_user = new \Change_User();
215+
$change_user = new Change_User();
214216
$change_user->deleteByCriteria([
215217
'changes_id' => $changes_id,
216-
'type' => \CommonITILActor::ASSIGN,
218+
'type' => CommonITILActor::ASSIGN,
217219
'users_id' => getItemByTypeName('User', TU_USER, true),
218220
]);
219221
$change->getFromDB($changes_id);
220-
$this->assertSame(0, $change->countUsers(\CommonITILActor::ASSIGN));
222+
$this->assertSame(0, $change->countUsers(CommonITILActor::ASSIGN));
221223
$this->assertSame(CommonITILObject::ACCEPTED, $change->fields['status']);
222224
}
223225

@@ -585,4 +587,32 @@ public function testCanAddDocument(array $profilerights, bool $expected): void
585587
$doc = new \Document();
586588
$this->assertEquals($expected, $doc->can(-1, CREATE, $input));
587589
}
590+
591+
// test with param _users_id_requester e.g in user profile
592+
// The user must be the requester
593+
public function testCreateChangeFromUser()
594+
{
595+
$this->login();
596+
597+
$user_id = getItemByTypeName('User', 'glpi', true);
598+
599+
$changes_id = $this->createItem(Change::class, [
600+
'name' => 'Change created from the user profile',
601+
'content' => 'Hello world',
602+
'entities_id' => $this->getTestRootEntity(true),
603+
'_users_id_requester' => $user_id,
604+
])->getID();
605+
606+
$change = new Change();
607+
$this->assertTrue($change->getFromDB($changes_id));
608+
609+
$changes_user = new Change_User();
610+
$found = $changes_user->find([
611+
'changes_id' => $changes_id,
612+
'users_id' => $user_id,
613+
'type' => CommonITILActor::REQUESTER, // user is _users_id_requester
614+
]);
615+
616+
$this->assertCount(1, $found);
617+
}
588618
}

tests/functional/ProblemTest.php

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@
3434

3535
namespace tests\units;
3636

37+
use CommonITILActor;
3738
use CommonITILObject;
3839
use Glpi\Tests\DbTestCase;
3940
use PHPUnit\Framework\Attributes\DataProvider;
4041
use Problem;
42+
use Problem_User;
4143

4244
/* Test for inc/problem.class.php */
4345

@@ -89,16 +91,16 @@ public function testAssignFromCategory()
8991
]);
9092
$this->assertFalse($problem->isNewItem());
9193
$problem->getFromDB($problem->getID());
92-
$problemUser = new \Problem_User();
94+
$problemUser = new Problem_User();
9395
$groupProblem = new \group_Problem();
9496
$rows = $problemUser->find([
9597
'problems_id' => $problem->getID(),
96-
'type' => \CommonITILActor::ASSIGN,
98+
'type' => CommonITILActor::ASSIGN,
9799
]);
98100
$this->assertCount(0, $rows);
99101
$rows = $groupProblem->find([
100102
'problems_id' => $problem->getID(),
101-
'type' => \CommonITILActor::ASSIGN,
103+
'type' => CommonITILActor::ASSIGN,
102104
]);
103105
$this->assertCount(0, $rows);
104106

@@ -116,18 +118,18 @@ public function testAssignFromCategory()
116118
]);
117119
$this->assertFalse($problem->isNewItem());
118120
$problem->getFromDB($problem->getID());
119-
$problemUser = new \Problem_User();
121+
$problemUser = new Problem_User();
120122
$groupProblem = new \group_Problem();
121123
$rows = $problemUser->find([
122124
'problems_id' => $problem->getID(),
123125
'users_id' => 4, // tech
124-
'type' => \CommonITILActor::ASSIGN,
126+
'type' => CommonITILActor::ASSIGN,
125127
]);
126128
$this->assertCount(0, $rows);
127129
$rows = $groupProblem->find([
128130
'problems_id' => $problem->getID(),
129131
'groups_id' => $group->getID(),
130-
'type' => \CommonITILActor::ASSIGN,
132+
'type' => CommonITILActor::ASSIGN,
131133
]);
132134
$this->assertCount(0, $rows);
133135

@@ -145,28 +147,28 @@ public function testAssignFromCategory()
145147
]);
146148
$this->assertFalse($problem->isNewItem());
147149
$problem->getFromDB($problem->getID());
148-
$problemUser = new \Problem_User();
150+
$problemUser = new Problem_User();
149151
$groupProblem = new \group_Problem();
150152
$rows = $problemUser->find([
151153
'problems_id' => $problem->getID(),
152154
'users_id' => 4, // tech
153-
'type' => \CommonITILActor::ASSIGN,
155+
'type' => CommonITILActor::ASSIGN,
154156
]);
155157
$this->assertCount(0, $rows);
156158
$rows = $groupProblem->find([
157159
'problems_id' => $problem->getID(),
158160
'groups_id' => $group->getID(),
159-
'type' => \CommonITILActor::ASSIGN,
161+
'type' => CommonITILActor::ASSIGN,
160162
]);
161163
$this->assertCount(0, $rows);
162164
}
163165

164166
public function testGetTeamRoles(): void
165167
{
166168
$roles = Problem::getTeamRoles();
167-
$this->assertContains(\CommonITILActor::ASSIGN, $roles);
168-
$this->assertContains(\CommonITILActor::OBSERVER, $roles);
169-
$this->assertContains(\CommonITILActor::REQUESTER, $roles);
169+
$this->assertContains(CommonITILActor::ASSIGN, $roles);
170+
$this->assertContains(CommonITILActor::OBSERVER, $roles);
171+
$this->assertContains(CommonITILActor::REQUESTER, $roles);
170172
}
171173

172174
public function testGetTeamRoleName(): void
@@ -458,19 +460,19 @@ public function testClosedProblemWithObserverStatus()
458460
]
459461
);
460462

461-
$user_problem = new \Problem_User();
463+
$user_problem = new Problem_User();
462464
$this->assertTrue(
463465
$user_problem->getFromDBByCrit([
464466
'problems_id' => $problem->getID(),
465467
'users_id' => $glpi_user->getID(),
466-
'type' => \CommonITILActor::REQUESTER,
468+
'type' => CommonITILActor::REQUESTER,
467469
])
468470
);
469471
$this->assertTrue(
470472
$user_problem->getFromDBByCrit([
471473
'problems_id' => $problem->getID(),
472474
'users_id' => $tech_user->getID(),
473-
'type' => \CommonITILActor::ASSIGN,
475+
'type' => CommonITILActor::ASSIGN,
474476
])
475477
);
476478

@@ -557,4 +559,33 @@ public function testClosedProblemWithObserverStatus()
557559
$this->assertTrue($problem->getFromDB($problem->getID()));
558560
$this->assertEquals(Problem::CLOSED, $problem->fields['status']);
559561
}
562+
563+
// test with param _users_id_requester e.g in user profile
564+
// The user must be the requester
565+
public function testCreateProblemFromUser()
566+
{
567+
$this->login();
568+
569+
$user_id = getItemByTypeName('User', 'glpi', true);
570+
571+
$problems_id = $this->createItem(Problem::class, [
572+
'name' => 'Problem created from the user profile',
573+
'content' => 'Hello world',
574+
'entities_id' => $this->getTestRootEntity(true),
575+
'_users_id_requester' => $user_id,
576+
])->getID();
577+
578+
$problem = new Problem();
579+
$this->assertTrue($problem->getFromDB($problems_id));
580+
581+
$problem_user = new Problem_User();
582+
$found = $problem_user->find([
583+
'problems_id' => $problems_id,
584+
'users_id' => $user_id,
585+
'type' => CommonITILActor::REQUESTER, // user is _users_id_requester
586+
]);
587+
588+
$this->assertCount(1, $found);
589+
}
590+
560591
}

0 commit comments

Comments
 (0)