From e1fa1b45403e9c680b40419a039bdd43e808a379 Mon Sep 17 00:00:00 2001
From: dyszczo <krzysiek@inspirelabs.pl>
Date: Sun, 23 Sep 2018 22:39:42 +0200
Subject: [PATCH] fixed chain resolver tests

---
 tests/unit/Resolver/TestChainResolver.php | 57 +++++++++++------------
 1 file changed, 27 insertions(+), 30 deletions(-)

diff --git a/tests/unit/Resolver/TestChainResolver.php b/tests/unit/Resolver/TestChainResolver.php
index 708053a..22f56cb 100644
--- a/tests/unit/Resolver/TestChainResolver.php
+++ b/tests/unit/Resolver/TestChainResolver.php
@@ -1,55 +1,52 @@
 <?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');
     }
-- 
GitLab