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

fixed chain resolver tests

parent 8bd2d6c2
No related branches found
No related tags found
2 merge requests!8feat/woo template,!3Feature/implementation
<?php
use WPDesk\View\Resolver\ChainResolver;
use WPDesk\View\Resolver\Exception\CanNotResolve;
use WPDesk\View\Resolver\NullResolver;
class TestChainResolver extends \PHPUnit\Framework\TestCase
{
const RESPONSE_OF_FIRST_RESOLVER = 'first';
const RESPONSE_OF_SECOND_RESOLVER = 'second';
const RESPONSE_OF_RESOLVER = 'response';
const RESOLVE_METHOD_NAME = 'resolve';
public function setUp()
{
\WP_Mock::setUp();
}
public function tearDown()
{
\WP_Mock::tearDown();
}
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'));
$validResolver = Mockery::mock(NullResolver::class);
$validResolver
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andReturn(self::RESPONSE_OF_RESOLVER);
$resolver = new ChainResolver(new NullResolver(), new NullResolver(), $validResolver);
$this->assertEquals(self::RESPONSE_OF_RESOLVER, $resolver->resolve('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]);
$validResolver = Mockery::mock(NullResolver::class);
$validResolver
->shouldReceive(self::RESOLVE_METHOD_NAME)
->andReturn(self::RESPONSE_OF_RESOLVER);
$resolver = new \WPDesk\View\Resolver\ChainResolver($firstResolver, $secondResolver);
$this->assertEquals(self::RESPONSE_OF_SECOND_RESOLVER, $resolver->resolver('whatever'));
$resolver = new ChainResolver($validResolver, new NullResolver(), new NullResolver());
$this->assertEquals(self::RESPONSE_OF_RESOLVER, $resolver->resolve('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 = new ChainResolver(new NullResolver(), new NullResolver());
$resolver->resolve('whatever2');
}
......
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