* @copyright Meritoo * * @internal * @covers \Meritoo\Common\Exception\Bundle\IncorrectBundleNameException */ class IncorrectBundleNameExceptionTest extends BaseTestCase { public function testConstructor(): void { static::assertConstructorVisibilityAndArguments( IncorrectBundleNameException::class, OopVisibilityType::IS_PUBLIC, 3 ); } /** * @param string $description Description of test * @param string $bundleName Incorrect name of bundle * @param string $expectedMessage Expected exception's message * * @dataProvider provideBundleNameAndMessage */ public function testCreate(string $description, string $bundleName, string $expectedMessage): void { $exception = IncorrectBundleNameException::create($bundleName); static::assertSame($expectedMessage, $exception->getMessage(), $description); } public function provideBundleNameAndMessage(): Generator { $template = 'Name of bundle \'%s\' is incorrect. It should start with big letter and end with "Bundle". Is' . ' there everything ok?'; yield[ 'An empty string as name of bundle', '', sprintf($template, ''), ]; yield[ 'String with spaces as name of bundle', 'This is test', sprintf($template, 'This is test'), ]; yield[ 'String without spaces as name of bundle', 'ThisIsTest', sprintf($template, 'ThisIsTest'), ]; } }