* @copyright Meritoo.pl */ class CreateSessionKeyFailedExceptionTest extends BaseTestCase { public function testConstructorVisibilityAndArguments() { static::assertConstructorVisibilityAndArguments(CreateSessionKeyFailedException::class, OopVisibilityType::IS_PUBLIC, 1, 0); } /** * @param string $reason Reason of failure, e.g. "Invalid user name or password" * @param string $expectedMessage Expected exception's message * * @dataProvider provideReason */ public function testConstructorMessage($reason, $expectedMessage) { $exception = new CreateSessionKeyFailedException($reason); static::assertEquals($expectedMessage, $exception->getMessage()); } /** * Provides reason of failure * * @return Generator */ public function provideReason() { $shortMessage = 'Create of the session key has failed'; $longMessageTemplate = sprintf('%s. Reason: \'%s\'.', $shortMessage, '%s'); yield[ '', $shortMessage, ]; yield[ 'Invalid user name or password', sprintf($longMessageTemplate, 'Invalid user name or password'), ]; } }