@@ -356,6 +356,93 @@ class TestRegistrationPresenter extends Tester\TestCase
356356 );
357357 }
358358
359+ public function testCreateAccountSameName ()
360+ {
361+ $ student = $ this ->presenter ->users ->getByEmail (PresenterTestHelper::STUDENT_GROUP_MEMBER_LOGIN );
362+ Assert::notNull ($ student );
363+
364+ 365+ $ firstName = $ student ->getFirstName ();
366+ $ lastName = $ student ->getLastName ();
367+ $ password = "password " ;
368+ $ instances = $ this ->instances ->findAll ();
369+ $ instanceId = array_pop ($ instances )->getId ();
370+ $ titlesBeforeName = "titlesBeforeName " ;
371+ $ titlesAfterName = "titlesAfterName " ;
372+
373+ $ payload = PresenterTestHelper::performPresenterRequest (
374+ $ this ->presenter ,
375+ $ this ->presenterPath ,
376+ 'POST ' ,
377+ ['action ' => 'createAccount ' ],
378+ [
379+ 'email ' => $ email ,
380+ 'firstName ' => $ firstName ,
381+ 'lastName ' => $ lastName ,
382+ 'password ' => $ password ,
383+ 'passwordConfirm ' => $ password ,
384+ 'instanceId ' => $ instanceId ,
385+ 'titlesBeforeName ' => $ titlesBeforeName ,
386+ 'titlesAfterName ' => $ titlesAfterName
387+ ]
388+ );
389+
390+ Assert::equal (null , $ payload ["user " ]);
391+ Assert::count (1 , $ payload ["usersWithSameName " ]);
392+ $ user = current ($ payload ["usersWithSameName " ]);
393+ Assert::equal ($ student ->getId (), $ user ["id " ]);
394+ }
395+
396+ public function testCreateAccountSameNameEnabled ()
397+ {
398+ $ student = $ this ->presenter ->users ->getByEmail (PresenterTestHelper::STUDENT_GROUP_MEMBER_LOGIN );
399+ Assert::notNull ($ student );
400+
401+ 402+ $ firstName = $ student ->getFirstName ();
403+ $ lastName = $ student ->getLastName ();
404+ $ password = "password " ;
405+ $ instances = $ this ->instances ->findAll ();
406+ $ instanceId = array_pop ($ instances )->getId ();
407+ $ titlesBeforeName = "titlesBeforeName " ;
408+ $ titlesAfterName = "titlesAfterName " ;
409+
410+ $ request = new Nette \Application \Request (
411+ $ this ->presenterPath ,
412+ 'POST ' ,
413+ ['action ' => 'createAccount ' ],
414+ [
415+ 'email ' => $ email ,
416+ 'firstName ' => $ firstName ,
417+ 'lastName ' => $ lastName ,
418+ 'password ' => $ password ,
419+ 'passwordConfirm ' => $ password ,
420+ 'instanceId ' => $ instanceId ,
421+ 'titlesBeforeName ' => $ titlesBeforeName ,
422+ 'titlesAfterName ' => $ titlesAfterName ,
423+ 'ignoreNameCollision ' => true ,
424+ ]
425+ );
426+ $ response = $ this ->presenter ->run ($ request );
427+ Assert::type (Nette \Application \Responses \JsonResponse::class, $ response );
428+
429+ $ result = $ response ->getPayload ();
430+ Assert::equal (201 , $ result ['code ' ]);
431+ Assert::equal (2 , count ($ result ['payload ' ]));
432+ Assert::true (array_key_exists ("accessToken " , $ result ["payload " ]));
433+ Assert::true (array_key_exists ("user " , $ result ["payload " ]));
434+
435+ // check created user
436+ $ user = $ result ["payload " ]["user " ];
437+ Assert::equal ("$ titlesBeforeName $ firstName $ lastName $ titlesAfterName " , $ user ["fullName " ]);
438+ Assert::equal ($ email , $ user ["privateData " ]["email " ]);
439+
440+ // check created login
441+ $ login = $ this ->logins ->findByUserId ($ user ["id " ]);
442+ Assert::equal ($ user ["id " ], $ login ->getUser ()->getId ());
443+ Assert::true ($ login ->passwordsMatchOrEmpty ($ password , $ this ->presenter ->passwordsService ));
444+ }
445+
359446 public function testValidateRegistrationData ()
360447 {
361448 $ request = new Nette \Application \Request (
0 commit comments