2022-10-26 16:13:19 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Zoomyboy\Tex;
|
|
|
|
|
|
|
|
use PHPUnit\Framework\Assert;
|
|
|
|
|
|
|
|
abstract class Document
|
|
|
|
{
|
2022-10-27 02:26:32 +02:00
|
|
|
abstract public function filename(): string;
|
|
|
|
|
|
|
|
abstract public function view(): string;
|
|
|
|
|
2022-10-27 16:54:24 +02:00
|
|
|
abstract public function template(): ?Template;
|
2022-10-27 02:26:32 +02:00
|
|
|
|
2022-10-27 16:54:24 +02:00
|
|
|
abstract public function getEngine(): Engine;
|
2022-10-27 02:26:32 +02:00
|
|
|
|
2022-10-26 16:13:19 +02:00
|
|
|
public function assertHasContent(string $content): void
|
|
|
|
{
|
|
|
|
Assert::assertStringContainsString(
|
|
|
|
$content,
|
|
|
|
$this->renderBody(),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2022-10-27 16:54:24 +02:00
|
|
|
public function renderBody(): string
|
2022-10-26 16:13:19 +02:00
|
|
|
{
|
2022-10-27 16:54:24 +02:00
|
|
|
return view()
|
|
|
|
->make($this->view(), get_object_vars($this))
|
|
|
|
->render();
|
2022-10-26 16:13:19 +02:00
|
|
|
}
|
|
|
|
}
|