<?php
namespace Tamtamchik\SimpleFlash\Test;
use PHPUnit\Framework\TestCase;
use Tamtamchik\SimpleFlash\Exceptions\FlashTemplateNotFoundException;
use Tamtamchik\SimpleFlash\Flash;
use Tamtamchik\SimpleFlash\TemplateFactory;
use Tamtamchik\SimpleFlash\Templates;
use function Tamtamchik\SimpleFlash\flash;
require_once __DIR__ . '/../vendor/autoload.php';
require_once 'BadTemplate.php';
class FactoryTest extends TestCase
{
public static function setUpBeforeClass(): void
{
flash()->clear();
}
private $templates = [];
/**
* Prepare setup before tests.
*/
protected function setUp(): void
{
$templatesReflection = new \ReflectionClass('Tamtamchik\\SimpleFlash\\Templates');
$this->templates = $templatesReflection->getConstants();
}
/**
* Base create function.
*
* @param $name
* @throws FlashTemplateNotFoundException
*/
private function _testTemplate($name)
{
$template = TemplateFactory::create($name);
$flash = new Flash();
$flash->setTemplate($template);
$msg = $template->wrapMessage('Testing templates');
$text = $template->wrapMessages($msg, 'info');
$content = $flash->info('Testing templates')->display();
$this->assertStringContainsString($text, $content);
unset($flash);
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testTemplates()
{
foreach ($this->templates as $template) {
$this->_testTemplate($template);
}
$this->_testTemplate(Templates::BASE);
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testDefaultTemplate()
{
$template = TemplateFactory::create();
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\BootstrapTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testBootstrapTemplate()
{
$template = TemplateFactory::create(Templates::BOOTSTRAP);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\BootstrapTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testFoundationTemplate()
{
$template = TemplateFactory::create(Templates::FOUNDATION);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\FoundationTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testSemanticTemplate()
{
$template = TemplateFactory::create(Templates::SEMANTIC);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\SemanticTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testUiKitTemplate()
{
$template = TemplateFactory::create(Templates::UIKIT);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\UikitTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testBulmaTemplate()
{
$template = TemplateFactory::create(Templates::BULMA);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\BulmaTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testMaterializeTemplate()
{
$template = TemplateFactory::create(Templates::MATERIALIZE);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\MaterializeTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testSpectreTemplate()
{
$template = TemplateFactory::create(Templates::SPECTRE);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\SpectreTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testTailwindTemplate()
{
$template = TemplateFactory::create(Templates::TAILWIND);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\TailwindTemplate', get_class($template));
}
/**
* @test
* @throws FlashTemplateNotFoundException
*/
public function testPrimerTemplate()
{
$template = TemplateFactory::create(Templates::PRIMER);
$this->assertEquals('Tamtamchik\SimpleFlash\Templates\PrimerTemplate', get_class($template));
}
/** @test */
public function testNotFoundTemplate()
{
try {
TemplateFactory::create('ABCTemplate');
} catch (FlashTemplateNotFoundException $e) {
$this->assertStringContainsString('Template "ABCTemplate" not found!', $e->getMessage());
}
}
}
|