Browse Source

Merge pull request #11108 from cakephp/cache-shell-test

Convert CacheShell to use ConsoleIntegrationTestCase
Mark Story 8 years ago
parent
commit
3c432cd7b0
1 changed files with 20 additions and 12 deletions
  1. 20 12
      tests/TestCase/Shell/CacheShellTest.php

+ 20 - 12
tests/TestCase/Shell/CacheShellTest.php

@@ -16,13 +16,14 @@ namespace Cake\Test\TestCase\Shell;
 
 use Cake\Cache\Cache;
 use Cake\Console\Exception\StopException;
+use Cake\Console\Shell;
 use Cake\Shell\CacheShell;
-use Cake\TestSuite\TestCase;
+use Cake\TestSuite\ConsoleIntegrationTestCase;
 
 /**
  * CacheShell tests.
  */
-class CacheShellTest extends TestCase
+class CacheShellTest extends ConsoleIntegrationTestCase
 {
 
     /**
@@ -33,8 +34,6 @@ class CacheShellTest extends TestCase
     public function setUp()
     {
         parent::setUp();
-        $this->io = $this->getMockBuilder('Cake\Console\ConsoleIo')->getMock();
-        $this->shell = new CacheShell($this->io);
         Cache::config('test', ['engine' => 'File', 'path' => CACHE]);
     }
 
@@ -46,8 +45,6 @@ class CacheShellTest extends TestCase
     public function tearDown()
     {
         parent::tearDown();
-        unset($this->io);
-        unset($this->shell);
         Cache::drop('test');
     }
 
@@ -58,7 +55,11 @@ class CacheShellTest extends TestCase
      */
     public function testGetOptionParser()
     {
-        $this->assertInstanceOf('Cake\Console\ConsoleOptionParser', $this->shell->getOptionParser());
+        $this->exec('cache -h');
+
+        $this->assertExitCode(Shell::CODE_SUCCESS);
+        $this->assertOutputContains('list_prefixes');
+        $this->assertOutputContains('clear_all');
     }
 
     /**
@@ -68,8 +69,9 @@ class CacheShellTest extends TestCase
      */
     public function testClearInvalidPrefix()
     {
-        $this->expectException(StopException::class);
-        $this->shell->clear('foo');
+        $this->exec('cache clear foo');
+        $this->assertExitCode(Shell::CODE_ERROR);
+        $this->assertErrorContains('The "foo" cache configuration does not exist');
     }
 
     /**
@@ -80,7 +82,9 @@ class CacheShellTest extends TestCase
     public function testClearValidPrefix()
     {
         Cache::add('key', 'value', 'test');
-        $this->shell->clear('test');
+        $this->exec('cache clear test');
+
+        $this->assertExitCode(Shell::CODE_SUCCESS);
         $this->assertFalse(Cache::read('key', 'test'));
     }
 
@@ -92,7 +96,9 @@ class CacheShellTest extends TestCase
     public function testClearIgnoresOtherCaches()
     {
         Cache::add('key', 'value', 'test');
-        $this->shell->clear('_cake_core_');
+        $this->exec('cache clear _cake_core_');
+
+        $this->assertExitCode(Shell::CODE_SUCCESS);
         $this->assertEquals('value', Cache::read('key', 'test'));
     }
 
@@ -105,7 +111,9 @@ class CacheShellTest extends TestCase
     {
         Cache::add('key', 'value1', 'test');
         Cache::add('key', 'value3', '_cake_core_');
-        $this->shell->clearAll();
+        $this->exec('cache clear_all');
+
+        $this->assertExitCode(Shell::CODE_SUCCESS);
         $this->assertFalse(Cache::read('key', 'test'));
         $this->assertFalse(Cache::read('key', '_cake_core_'));
     }