diff --git a/composer.json b/composer.json index 79afa9c48eba7ee11cc1ccbb97b237c913a60723..e3376b93852627f9d70ecb7f3731faaa79e5ffad 100644 --- a/composer.json +++ b/composer.json @@ -19,6 +19,9 @@ "autoload": { "psr-4": {"WPDesk\\View\\": "src/"} }, + "autoload-dev": { + "psr-4": {"WPDesk\\View\\Tests\\": "tests/"} + }, "scripts": { "test": "phpunit", "phpcs": "phpcs" diff --git a/tests/Fixtures/child-template.php b/tests/Fixtures/child-template.php new file mode 100644 index 0000000000000000000000000000000000000000..980a0d5f19a64b4b30a87d4206aade58726b60e3 --- /dev/null +++ b/tests/Fixtures/child-template.php @@ -0,0 +1 @@ +Hello World! diff --git a/tests/Fixtures/root-template.php b/tests/Fixtures/root-template.php new file mode 100644 index 0000000000000000000000000000000000000000..b4e0f033659ce14df4603796efd5211e2f91d44c --- /dev/null +++ b/tests/Fixtures/root-template.php @@ -0,0 +1 @@ +This is a content of nested template: <?php $this->output_render('child-template'); ?> diff --git a/tests/stub/template/file.php b/tests/Fixtures/template/file.php similarity index 100% rename from tests/stub/template/file.php rename to tests/Fixtures/template/file.php diff --git a/tests/Renderer/TestSimplePhpRenderer.php b/tests/Renderer/TestSimplePhpRenderer.php index bb3f175428d5550a79b013525d17c4c2d43f1ac2..b647beab8f4beebe5e2afdb856e5e9d794e2cdba 100644 --- a/tests/Renderer/TestSimplePhpRenderer.php +++ b/tests/Renderer/TestSimplePhpRenderer.php @@ -1,6 +1,9 @@ <?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 diff --git a/tests/Resolver/TestChainResolver.php b/tests/Resolver/TestChainResolver.php index 0e32b1faeceb3e9a52a4a9a6fcba43684dc8dfe9..b68c1f954e2056ae42781d29b6f337a9986a8dd7 100644 --- a/tests/Resolver/TestChainResolver.php +++ b/tests/Resolver/TestChainResolver.php @@ -1,5 +1,7 @@ <?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); diff --git a/tests/Resolver/TestDirResolver.php b/tests/Resolver/TestDirResolver.php index 088bc09eea390c76d1569dec3cd4af8facbd96d8..42cfcfaa0047b10ea1a8de27d0ec2e328c8e2782 100644 --- a/tests/Resolver/TestDirResolver.php +++ b/tests/Resolver/TestDirResolver.php @@ -1,5 +1,6 @@ <?php +namespace WPDesk\View\Tests; use WPDesk\View\Resolver\Exception\CanNotResolve; diff --git a/tests/Resolver/TestWpThemeResolver.php b/tests/Resolver/TestWpThemeResolver.php index ab400a52f00b48ea304f734d94ba43050dca2ef4..c3fb0a2f06bb484b681616dc12ecf0e4e0e37d20 100644 --- a/tests/Resolver/TestWpThemeResolver.php +++ b/tests/Resolver/TestWpThemeResolver.php @@ -1,5 +1,6 @@ <?php +namespace WPDesk\View\Tests; use WPDesk\View\Resolver\Exception\CanNotResolve; diff --git a/tests/TestPluginViewBuilder.php b/tests/TestPluginViewBuilder.php index 6c25585225ca6b454398b689645b3768950c7f62..9b9ea8ccc6cad47cc9c152dab6a86d0a907896b8 100644 --- a/tests/TestPluginViewBuilder.php +++ b/tests/TestPluginViewBuilder.php @@ -1,5 +1,6 @@ <?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,