@@ -406,6 +406,77 @@ public function shouldGetSpecificUserEmail()
406406        $ this assertEquals ($ expectedArray$ apiemail (1 ));
407407    }
408408
409+     /** 
410+      * @test 
411+      */ 
412+     public  function  shouldGetCurrentUserImpersonationTokens ()
413+     {
414+         $ expectedArrayarray (
415+             array ('id '  => 1 , 'name '  => 'A Name ' , 'revoked '  => false ),
416+             array ('id '  => 2 , 'name '  => 'A Name ' , 'revoked '  => false ),
417+         );
418+ 
419+         $ api$ this getApiMock ();
420+         $ apiexpects ($ this once ())
421+             ->method ('get ' )
422+             ->with ('users/1/impersonation_tokens ' )
423+             ->will ($ this returnValue ($ expectedArray
424+         ;
425+ 
426+         $ this assertEquals ($ expectedArray$ apiuserImpersonationTokens (1 ));
427+     }
428+ 
429+     /** 
430+      * @test 
431+      */ 
432+     public  function  shouldGetUserImpersonationToken ()
433+     {
434+         $ expectedArrayarray ('id '  => 2 , 'name '  => 'name ' );
435+ 
436+         $ api$ this getApiMock ();
437+         $ apiexpects ($ this once ())
438+             ->method ('get ' )
439+             ->with ('users/1/impersonation_tokens/1 ' )
440+             ->will ($ this returnValue ($ expectedArray
441+         ;
442+ 
443+         $ this assertEquals ($ expectedArray$ apiuserImpersonationToken (1 , 1 ));
444+     }
445+ 
446+     /** 
447+      * @test 
448+      */ 
449+     public  function  shouldCreateImpersonationTokenForUser ()
450+     {
451+         $ expectedArrayarray ('id '  => 1 , 'name '  => 'name ' );
452+ 
453+         $ api$ this getApiMock ();
454+         $ apiexpects ($ this once ())
455+             ->method ('post ' )
456+             ->with ('users/1/impersonation_tokens ' , array ('name '  => 'name ' , 'scopes '  => ['api ' ] ,'expires_at '  => null ))
457+             ->will ($ this returnValue ($ expectedArray
458+         ;
459+ 
460+         $ this assertEquals ($ expectedArray$ apicreateImpersonationToken (1 , 'name ' , ['api ' ]));
461+     }
462+ 
463+     /** 
464+      * @test 
465+      */ 
466+     public  function  shouldDeleteImpersonationTokenForUser ()
467+     {
468+         $ expectedBooltrue ;
469+ 
470+         $ api$ this getApiMock ();
471+         $ apiexpects ($ this once ())
472+             ->method ('delete ' )
473+             ->with ('users/1/impersonation_tokens/1 ' )
474+             ->will ($ this returnValue ($ expectedBool
475+         ;
476+ 
477+         $ this assertEquals ($ expectedBool$ apiremoveImpersonationToken (1 , 1 ));
478+     }
479+ 
409480    protected  function  getApiClass ()
410481    {
411482        return  'Gitlab\Api\Users ' ;
0 commit comments