* @copyright Meritoo * * @internal * @covers \Meritoo\Common\Exception\ValueObject\Template\InvalidContentException */ class InvalidContentExceptionTest extends BaseTestCase { public function provideContent(): ?Generator { $template = 'Content of template \'%s\' is invalid. Did you use string with 1 placeholder at least?'; yield [ 'An empty string', '', sprintf($template, ''), ]; yield [ 'Simple string', 'Lorem ipsum', sprintf($template, 'Lorem ipsum'), ]; yield [ 'One sentence', 'Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.', sprintf($template, 'Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.'), ]; } public function testConstructorVisibilityAndArguments(): void { static::assertConstructorVisibilityAndArguments( InvalidContentException::class, OopVisibilityType::IS_PUBLIC, 3 ); } /** * @param string $description Description of test * @param string $content Invalid content of template * @param string $expectedMessage Expected exception's message * * @dataProvider provideContent */ public function testCreate(string $description, string $content, string $expectedMessage): void { $exception = InvalidContentException::create($content); static::assertSame($expectedMessage, $exception->getMessage(), $description); } }