@@ -5,7 +5,6 @@ $container = require_once __DIR__ . "/../bootstrap.php";
55use App \Exceptions \ForbiddenRequestException ;
66use App \Helpers \EmailVerificationHelper ;
77use App \Helpers \AnonymizationHelper ;
8- use App \Model \Entity \Exercise ;
98use App \Model \Entity \Login ;
109use App \Model \Entity \ExternalLogin ;
1110use App \Model \Entity \User ;
@@ -225,6 +224,36 @@ class TestUsersPresenter extends Tester\TestCase
225224 Assert::same ($ user ->getId (), $ result ["payload " ]["id " ]);
226225 }
227226
227+ public function testFindByExternalLogin ()
228+ {
229+ PresenterTestHelper::loginDefaultAdmin ($ this ->container );
230+ $ extLogins = $ this ->presenter ->externalLogins ->findAll ();
231+ Assert::count (1 , $ extLogins );
232+ $ el = $ extLogins [0 ];
233+
234+ $ payload = PresenterTestHelper::performPresenterRequest (
235+ $ this ->presenter ,
236+ $ this ->presenterPath ,
237+ 'GET ' ,
238+ ['action ' => 'findByExternalLogin ' , 'service ' => $ el ->getAuthService (), 'externalId ' => $ el ->getExternalId ()]
239+ );
240+
241+ Assert::same ($ el ->getUser ()->getId (), $ payload ["id " ]);
242+ }
243+
244+ public function testFindByExternalLoginEmptyResult ()
245+ {
246+ PresenterTestHelper::loginDefaultAdmin ($ this ->container );
247+ Assert::exception (function () {
248+ PresenterTestHelper::performPresenterRequest (
249+ $ this ->presenter ,
250+ $ this ->presenterPath ,
251+ 'GET ' ,
252+ ['action ' => 'findByExternalLogin ' , 'service ' => 'ext-service ' , 'externalId ' => 'blabla ' ]
253+ );
254+ }, App \Exceptions \NotFoundException::class);
255+ }
256+
228257 public function testUpdateProfileWithoutEmailAndPassword ()
229258 {
230259 PresenterTestHelper::loginDefaultAdmin ($ this ->container );
@@ -857,7 +886,7 @@ class TestUsersPresenter extends Tester\TestCase
857886 Assert::true ($ payload ['privateData ' ]['isExternal ' ]);
858887 Assert::equal (['test-cas ' => 'abc ' ], $ payload ['privateData ' ]['externalIds ' ]);
859888
860- $ els = $ this ->presenter ->externalLogins ->findAll ( );
889+ $ els = $ this ->presenter ->externalLogins ->findBy ([ ' authService ' => ' test-cas ' ] );
861890 Assert::count (1 , $ els );
862891 Assert::equal ($ user ->getId (), $ els [0 ]->getUser ()->getId ());
863892 Assert::equal ('abc ' , $ els [0 ]->getExternalId ());
@@ -890,7 +919,7 @@ class TestUsersPresenter extends Tester\TestCase
890919 Assert::true ($ payload ['privateData ' ]['isExternal ' ]);
891920 Assert::equal (['test-cas ' => 'abc ' ], $ payload ['privateData ' ]['externalIds ' ]);
892921
893- $ els = $ this ->presenter ->externalLogins ->findAll ( );
922+ $ els = $ this ->presenter ->externalLogins ->findBy ([ ' authService ' => ' test-cas ' ] );
894923 Assert::count (1 , $ els );
895924 Assert::equal ($ user ->getId (), $ els [0 ]->getUser ()->getId ());
896925 Assert::equal ('abc ' , $ els [0 ]->getExternalId ());
@@ -922,7 +951,7 @@ class TestUsersPresenter extends Tester\TestCase
922951 Assert::false ($ payload ['privateData ' ]['isExternal ' ]);
923952 Assert::equal ([], $ payload ['privateData ' ]['externalIds ' ]);
924953
925- $ els = $ this ->presenter ->externalLogins ->findAll ( );
954+ $ els = $ this ->presenter ->externalLogins ->findBy ([ ' authService ' => ' test-cas ' ] );
926955 Assert::count (0 , $ els );
927956
928957 $ this ->users ->refresh ($ user );
0 commit comments