* * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) * - (c) John MacFarlane * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace League\CommonMark\Tests\Unit\Renderer\Block; use League\CommonMark\Exception\InvalidArgumentException; use League\CommonMark\Node\Block\AbstractBlock; use League\CommonMark\Node\Block\Paragraph; use League\CommonMark\Renderer\Block\ParagraphRenderer; use League\CommonMark\Tests\Unit\Renderer\FakeChildNodeRenderer; use League\CommonMark\Util\HtmlElement; use PHPUnit\Framework\TestCase; final class ParagraphRendererTest extends TestCase { private ParagraphRenderer $renderer; protected function setUp(): void { $this->renderer = new ParagraphRenderer(); } public function testRender(): void { $block = new Paragraph(); $block->data->set('attributes/id', 'foo'); $fakeRenderer = new FakeChildNodeRenderer(); $fakeRenderer->pretendChildrenExist(); $result = $this->renderer->render($block, $fakeRenderer); $this->assertTrue($result instanceof HtmlElement); $this->assertEquals('p', $result->getTagName()); $this->assertStringContainsString('::children::', $result->getContents(true)); $this->assertEquals(['id' => 'foo'], $result->getAllAttributes()); } public function testRenderWithInvalidType(): void { $this->expectException(InvalidArgumentException::class); $inline = $this->getMockForAbstractClass(AbstractBlock::class); $fakeRenderer = new FakeChildNodeRenderer(); $this->renderer->render($inline, $fakeRenderer); } }