3535namespace tests \units ;
3636
3737use Change ;
38+ use Change_User ;
39+ use CommonITILActor ;
3840use CommonITILObject ;
3941use Glpi \Tests \DbTestCase ;
4042use 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}
0 commit comments