Skip to content

Instantly share code, notes, and snippets.

@jkuchar
Created September 4, 2018 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jkuchar/b488bcbb6e6e349ffec2c648e95fbddd to your computer and use it in GitHub Desktop.
Save jkuchar/b488bcbb6e6e349ffec2c648e95fbddd to your computer and use it in GitHub Desktop.
Ukázka scénářových testů
<?php
// 1. prepare invitation
$identityProvider->becomeAdmin();
$invitation = $accounts->prepareInvitation(EmailAddress::of('double-usage@example.com'), 7);
// 2. check invitation code (OK)
$identityProvider->becomeGuest();
$tempIdentity = $accounts->authenticateWithTemporaryToken(
$invitation->getTemporaryAuthenticationToken()
);
$identityProvider->become($tempIdentity);
// this is considered as goal of token achieved (same as finish registration)
$accounts->finishRegistration(
$tempIdentity->getId(),
Name::from('', '', '', '', ''),
Gender::MALE(),
PhoneNumber::reconstitute('+420 123 456 789'),
'password',
'finished in tests'
);
// 3. check invitation code (already used)
$identityProvider->becomeGuest();
Assert::exception(function() use ($accounts, $invitation) {
$accounts->authenticateWithTemporaryToken(
$invitation->getTemporaryAuthenticationToken()
);
}, TemporaryAuthTokenHasBeenAlreadyUsed:: class);
<?php
// 1. prepare invitation
$identityProvider->becomeAdmin(); // someone who has right to prepareInvitation
$invitation = $accounts->prepareInvitation(EmailAddress::reconstitute('successful-registration@example.com'), 7);
// 2. unauthorized user clicks link
$identityProvider->becomeGuest();
$identity = $accounts->authenticateWithTemporaryToken(
$invitation->getTemporaryAuthenticationToken()
);
Assert::true(equals($identity->getId(), $invitation->getAccountId()));
// 3. User finishes registration
$identityProvider->become($identity);
$name = Name::from('', 'Jan', '', 'Kuchař', '');
Assert::false($accounts->isFullyRegistered($identity->getId()));
$accounts->finishRegistration(
$invitation->getAccountId(),
$name,
Gender::MALE(),
PhoneNumber::reconstitute('+420123456789'),
'password',
'finished in tests'
);
Assert::true($accounts->isFullyRegistered($identity->getId()));
// 4. Login into finished account
$identityProvider->becomeGuest();
$identityProvider->become(
$accounts->authenticateWithCredentials(
EmailAddress::reconstitute('successful-registration@example.com'),
'password'
)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment