Skip to content
Snippets Groups Projects
Commit 2501b350 authored by dyszczo's avatar dyszczo
Browse files

chain resolver tests

parent 24aae866
No related branches found
No related tags found
2 merge requests!8feat/woo template,!3Feature/implementation
<?php
use WPDesk\View\Resolver\Exception\CanNotResolve;
class TestChainResolver extends \PHPUnit\Framework\TestCase
{
const RESPONSE_OF_FIRST_RESOLVER = 'first';
const RESPONSE_OF_SECOND_RESOLVER = 'second';
const RESOLVE_METHOD_NAME = 'resolve';
public function testUseSecondResolverWhenFirstFailed()
{
$firstResolver = Mockery::mock(\WPDesk\View\Resolver\Resolver::class)
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andThrowExceptions([CanNotResolve::class]);
$secondResolver = Mockery::mock(\WPDesk\View\Resolver\Resolver::class)
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andReturn(self::RESPONSE_OF_SECOND_RESOLVER);
$resolver = new \WPDesk\View\Resolver\ChainResolver($firstResolver, $secondResolver);
$this->assertEquals(self::RESPONSE_OF_SECOND_RESOLVER, $resolver->resolver('whatever'));
}
public function testUseFirstResolverFirst()
{
$firstResolver = Mockery::mock(\WPDesk\View\Resolver\Resolver::class)
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andReturn(self::RESPONSE_OF_FIRST_RESOLVER);
$secondResolver = Mockery::mock(\WPDesk\View\Resolver\Resolver::class)
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andThrowExceptions([CanNotResolve::class]);
$resolver = new \WPDesk\View\Resolver\ChainResolver($firstResolver, $secondResolver);
$this->assertEquals(self::RESPONSE_OF_SECOND_RESOLVER, $resolver->resolver('whatever'));
}
public function testThrowExceptionWhenBothCannotFind()
{
$this->expectException(CanNotResolve::class);
$firstResolver = Mockery::mock(\WPDesk\View\Resolver\Resolver::class)
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andThrowExceptions([CanNotResolve::class]);
$secondResolver = Mockery::mock(\WPDesk\View\Resolver\Resolver::class)
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andThrowExceptions([CanNotResolve::class]);
$resolver = new \WPDesk\View\Resolver\ChainResolver($firstResolver, $secondResolver);
$resolver->resolve('whatever2');
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment