@@ -356,6 +356,93 @@ class TestRegistrationPresenter extends Tester\TestCase
356
356
);
357
357
}
358
358
359
+ public function testCreateAccountSameName ()
360
+ {
361
+ $ student = $ this ->presenter ->users ->getByEmail (PresenterTestHelper::STUDENT_GROUP_MEMBER_LOGIN );
362
+ Assert::notNull ($ student );
363
+
364
+ $ email = "email@email.email " ;
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
+ $ email = "email@email.email " ;
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
+
359
446
public function testValidateRegistrationData ()
360
447
{
361
448
$ request = new Nette \Application \Request (
0 commit comments