Phred/tests/MvcViewTest.php

33 lines
939 B
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace Phred\Tests;
use Phred\Mvc\View;
use Phred\Template\EyrieRenderer;
use PHPUnit\Framework\TestCase;
final class MvcViewTest extends TestCase
{
public function testViewTransformsDataAndRenders(): void
{
$renderer = new EyrieRenderer();
$view = new class($renderer) extends View {
protected function transformData(array $data): array
{
$data['name'] = strtoupper($data['name'] ?? '');
return $data;
}
};
// Set default template and render using data-first signature
$ref = new \ReflectionClass($view);
$prop = $ref->getParentClass()->getProperty('template');
$prop->setAccessible(true);
$prop->setValue($view, '<h1>Hello {{name}}</h1>');
$html = $view->render(['name' => 'world']);
$this->assertSame('<h1>Hello WORLD</h1>', $html);
}
}