Skip to content
Snippets Groups Projects
Select Git revision
  • 2ee881c3b82fa392bf7026840cb6cd6f24291671
  • master default protected
  • fix/deprecated_functions
  • devel
  • feat/translations
  • feat/upgrade_to_pro_url
  • feat/lang
  • bugfix/require-interface
  • bugfix/require-once-error
  • feature/activation-hooks
  • feature/template-loader
  • feature/template-renderer
  • feature/plugin-activation
  • feature/hookable-object
  • feature/builder-pattern
  • 2.1.2
  • 2.1.1
  • 2.1.0
  • 2.0.0
  • 2.0.0-beta1
  • 1.4.4
  • 1.4.3
  • 1.4.2
  • 1.4.1
  • 1.4
  • 1.3.3
  • 1.3.2
  • 1.3.1
  • 1.3.0
  • 1.2.0
  • 1.1
  • 1.0
32 results

HookableCollection.php

Blame
  • TestChainResolver.php 1.55 KiB
    <?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_RESOLVER = 'response';
    
        const RESOLVE_METHOD_NAME = 'resolve';
    
        public function setUp(): void
        {
            \WP_Mock::setUp();
        }
    
        public function tearDown(): void
        {
            \WP_Mock::tearDown();
        }
    
        public function testUseSecondResolverWhenFirstFailed()
        {
            $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.php'));
        }
    
        public function testUseFirstResolverFirst()
        {
            $validResolver = Mockery::mock(NullResolver::class);
            $validResolver
                ->shouldReceive(self::RESOLVE_METHOD_NAME)
                ->andReturn(self::RESPONSE_OF_RESOLVER);
    
            $resolver = new ChainResolver($validResolver, new NullResolver(), new NullResolver());
            $this->assertEquals(self::RESPONSE_OF_RESOLVER, $resolver->resolve('whatever.php'));
        }
    
        public function testThrowExceptionWhenBothCannotFind()
        {
            $this->expectException(CanNotResolve::class);
    
            $resolver = new ChainResolver(new NullResolver(), new NullResolver());
    
            $resolver->resolve('whatever2');
        }
    }