Skip to content
Snippets Groups Projects
Verified Commit c9d6e3ee authored by Bartek Jaskulski's avatar Bartek Jaskulski
Browse files

tests: namespace tests, add new tests

parent 8330903c
No related branches found
No related tags found
1 merge request!7Draft: tests: improve tests organization
Pipeline #258866 passed
This commit is part of merge request !7. Comments created here will be created in the context of that merge request.
......@@ -19,6 +19,9 @@
"autoload": {
"psr-4": {"WPDesk\\View\\": "src/"}
},
"autoload-dev": {
"psr-4": {"WPDesk\\View\\Tests\\": "tests/"}
},
"scripts": {
"test": "phpunit",
"phpcs": "phpcs"
......
Hello World!
This is a content of nested template: <?php $this->output_render('child-template'); ?>
<?php
namespace WPDesk\View\Tests;
use WPDesk\View\Resolver\ChainResolver;
use WPDesk\View\Resolver\DirResolver;
use WPDesk\View\Resolver\Exception\CanNotResolve;
use WPDesk\View\Resolver\NullResolver;
......@@ -12,9 +15,23 @@ class TestSimplePhpRenderer extends \PHPUnit\Framework\TestCase
const TEMPLATE_DIR = '/templates';
public function testThrowsExceptionWhenCannotFindTemplate()
{
$this->expectException(CanNotResolve::class);
$renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new DirResolver(''));
$renderer->render('anything');
}
public function testRenderWithDirResolver()
{
$renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new \WPDesk\View\Resolver\DirResolver(__DIR__ . self::TEMPLATE_DIR));
$renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new DirResolver(__DIR__ . self::TEMPLATE_DIR));
$this->assertEquals(self::TEXT_IN_TEMPLATE, $renderer->render(self::TEMPLATE_NAME));
}
public function testCanRenderNestedTemplates(): void
{
$renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new DirResolver(__DIR__ . '/../Fixtures'));
$this->assertStringContainsString('This is a content of nested template: Hello World!', $renderer->render('root-template'));
}
}
\ No newline at end of file
<?php
namespace WPDesk\View\Tests;
use WPDesk\View\Resolver\ChainResolver;
use WPDesk\View\Resolver\Exception\CanNotResolve;
use WPDesk\View\Resolver\NullResolver;
......@@ -22,7 +24,7 @@ class TestChainResolver extends \PHPUnit\Framework\TestCase
public function testUseSecondResolverWhenFirstFailed()
{
$validResolver = Mockery::mock(NullResolver::class);
$validResolver = \Mockery::mock(NullResolver::class);
$validResolver
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andReturn(self::RESPONSE_OF_RESOLVER);
......@@ -33,7 +35,7 @@ class TestChainResolver extends \PHPUnit\Framework\TestCase
public function testUseFirstResolverFirst()
{
$validResolver = Mockery::mock(NullResolver::class);
$validResolver = \Mockery::mock(NullResolver::class);
$validResolver
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andReturn(self::RESPONSE_OF_RESOLVER);
......
<?php
namespace WPDesk\View\Tests;
use WPDesk\View\Resolver\Exception\CanNotResolve;
......
<?php
namespace WPDesk\View\Tests;
use WPDesk\View\Resolver\Exception\CanNotResolve;
......
<?php
namespace WPDesk\View\Tests;
use WPDesk\View\PluginViewBuilder;
......@@ -20,14 +21,14 @@ class TestPluginViewBuilder extends \PHPUnit\Framework\TestCase {
}
public function testCanRenderUsingDir() {
$builder = new PluginViewBuilder( __DIR__ . '/stub', 'template' );
$builder = new PluginViewBuilder( __DIR__ . '/Fixtures', 'template' );
$renderer = $builder->createSimpleRenderer();
$val = 'val to render';
$args = [ 'singleArg' => $val ];
$content = $renderer->render( 'file', $args );
$this->assertRegExp( '/template content/', $content, 'Content from stub/template/file.php should be renderer' );
$this->assertRegExp( "/{$val}/", $content, 'Content from stub/template/file.php should contain $val' );
$this->assertRegExp( '/template content/', $content, 'Content from Fixtures/template/file.php should be renderer' );
$this->assertRegExp( "/{$val}/", $content, 'Content from Fixtures/template/file.php should contain $val' );
$contentUsingOtherMethod = $builder->loadTemplate( 'file', '.', $args );
$this->assertEquals( $content, $contentUsingOtherMethod,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment