* * 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\Extension\CommonMark\Node\Block\ThematicBreak; use League\CommonMark\Node\Block\AbstractBlock; use League\CommonMark\Node\Block\Document; use League\CommonMark\Renderer\Block\DocumentRenderer; use League\CommonMark\Tests\Unit\Renderer\FakeChildNodeRenderer; use PHPUnit\Framework\TestCase; final class DocumentRendererTest extends TestCase { private DocumentRenderer $renderer; protected function setUp(): void { $this->renderer = new DocumentRenderer(); } public function testRenderEmptyDocument(): void { $block = new Document(); $fakeRenderer = new FakeChildNodeRenderer(); $result = $this->renderer->render($block, $fakeRenderer); $this->assertIsString($result); $this->assertSame('', $result); } public function testRenderDocument(): void { $block = new Document(); $block->appendChild(new ThematicBreak()); $fakeRenderer = new FakeChildNodeRenderer(); $result = $this->renderer->render($block, $fakeRenderer); $this->assertIsString($result); $this->assertStringContainsString('::children::', $result); } public function testRenderWithInvalidType(): void { $this->expectException(InvalidArgumentException::class); $inline = $this->getMockForAbstractClass(AbstractBlock::class); $fakeRenderer = new FakeChildNodeRenderer(); $this->renderer->render($inline, $fakeRenderer); } }