<?php
namespace Jasny\Twig;
/**
* Helper methods for unit tests
*/
trait TestHelper
{
/**
* Get the tested extension
*
* @return \Twig_Extension
*/
abstract protected function getExtension();
/**
* Build the Twig environment for the template
*
* @param string $template
* @return \Twig_Environment
*/
protected function buildEnv($template)
{
$loader = new \Twig_Loader_Array([
'template' => $template,
]);
$twig = new \Twig_Environment($loader);
$twig->addExtension($this->getExtension());
return $twig;
}
/**
* Render template
*
* @param string $template
* @param array $data
* @return string
*/
protected function render($template, array $data = [])
{
$twig = $this->buildEnv($template);
$result = $twig->render('template', $data);
return $result;
}
/**
* Render template and assert equals
*
* @param string $expected
* @param string $template
* @param array $data
*/
protected function assertRender($expected, $template, array $data = [])
{
$result = $this->render($template, $data);
$this->assertEquals($expected, (string)$result);
}
}