summaryrefslogtreecommitdiff
path: root/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Console/Command/Task/PluginTaskTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Console/Command/Task/PluginTaskTest.php')
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Console/Command/Task/PluginTaskTest.php207
1 files changed, 207 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Console/Command/Task/PluginTaskTest.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Console/Command/Task/PluginTaskTest.php
new file mode 100644
index 0000000..28f06cc
--- /dev/null
+++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Console/Command/Task/PluginTaskTest.php
@@ -0,0 +1,207 @@
+<?php
+/**
+ * PluginTask Test file
+ *
+ * Test Case for plugin generation shell task
+ *
+ * PHP 5
+ *
+ * CakePHP : Rapid Development Framework (http://cakephp.org)
+ * Copyright 2005-2012, Cake Software Foundation, Inc.
+ *
+ * Licensed under The MIT License
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright Copyright 2005-2012, Cake Software Foundation, Inc.
+ * @link http://cakephp.org CakePHP Project
+ * @package Cake.Test.Case.Console.Command.Task
+ * @since CakePHP v 1.3.0
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ */
+
+App::uses('ShellDispatcher', 'Console');
+App::uses('ConsoleOutput', 'Console');
+App::uses('ConsoleInput', 'Console');
+App::uses('Shell', 'Console');
+App::uses('PluginTask', 'Console/Command/Task');
+App::uses('ModelTask', 'Console/Command/Task');
+App::uses('Folder', 'Utility');
+App::uses('File', 'Utility');
+
+/**
+ * PluginTaskPlugin class
+ *
+ * @package Cake.Test.Case.Console.Command.Task
+ */
+class PluginTaskTest extends CakeTestCase {
+
+/**
+ * setUp method
+ *
+ * @return void
+ */
+ public function setUp() {
+ parent::setUp();
+ $this->out = $this->getMock('ConsoleOutput', array(), array(), '', false);
+ $this->in = $this->getMock('ConsoleInput', array(), array(), '', false);
+
+ $this->Task = $this->getMock('PluginTask',
+ array('in', 'err', 'createFile', '_stop', 'clear'),
+ array($this->out, $this->out, $this->in)
+ );
+ $this->Task->path = TMP . 'tests' . DS;
+ $this->Task->bootstrap = TMP . 'tests' . DS . 'bootstrap.php';
+ touch($this->Task->bootstrap);
+
+ $this->_paths = $paths = App::path('plugins');
+ foreach ($paths as $i => $p) {
+ if (!is_dir($p)) {
+ array_splice($paths, $i, 1);
+ }
+ }
+ $this->_testPath = array_push($paths, TMP . 'tests' . DS);
+ App::build(array('plugins' => $paths));
+ }
+
+/**
+ * tearDown()
+ *
+ * @return void
+ */
+ public function tearDown() {
+ if (file_exists($this->Task->bootstrap)) {
+ unlink($this->Task->bootstrap);
+ }
+ parent::tearDown();
+ }
+
+/**
+ * test bake()
+ *
+ * @return void
+ */
+ public function testBakeFoldersAndFiles() {
+ $this->Task->expects($this->at(0))->method('in')->will($this->returnValue($this->_testPath));
+ $this->Task->expects($this->at(1))->method('in')->will($this->returnValue('y'));
+
+ $path = $this->Task->path . 'BakeTestPlugin';
+
+ $file = $path . DS . 'Controller' . DS . 'BakeTestPluginAppController.php';
+ $this->Task->expects($this->at(2))->method('createFile')
+ ->with($file, new PHPUnit_Framework_Constraint_IsAnything());
+
+ $file = $path . DS . 'Model' . DS . 'BakeTestPluginAppModel.php';
+ $this->Task->expects($this->at(3))->method('createFile')
+ ->with($file, new PHPUnit_Framework_Constraint_IsAnything());
+
+ $this->Task->bake('BakeTestPlugin');
+
+ $path = $this->Task->path . 'BakeTestPlugin';
+ $this->assertTrue(is_dir($path), 'No plugin dir %s');
+
+ $directories = array(
+ 'Config' . DS . 'Schema',
+ 'Model' . DS . 'Behavior',
+ 'Model' . DS . 'Datasource',
+ 'Console' . DS . 'Command' . DS . 'Task',
+ 'Controller' . DS . 'Component',
+ 'Lib',
+ 'View' . DS . 'Helper',
+ 'Test' . DS . 'Case' . DS . 'Controller' . DS . 'Component',
+ 'Test' . DS . 'Case' . DS . 'View' . DS . 'Helper',
+ 'Test' . DS . 'Case' . DS . 'Model' . DS . 'Behavior',
+ 'Test' . DS . 'Fixture',
+ 'Vendor',
+ 'webroot'
+ );
+ foreach ($directories as $dir) {
+ $this->assertTrue(is_dir($path . DS . $dir), 'Missing directory for ' . $dir);
+ }
+
+ $Folder = new Folder($this->Task->path . 'BakeTestPlugin');
+ $Folder->delete();
+ }
+
+/**
+ * test execute with no args, flowing into interactive,
+ *
+ * @return void
+ */
+ public function testExecuteWithNoArgs() {
+ $this->Task->expects($this->at(0))->method('in')->will($this->returnValue('TestPlugin'));
+ $this->Task->expects($this->at(1))->method('in')->will($this->returnValue($this->_testPath));
+ $this->Task->expects($this->at(2))->method('in')->will($this->returnValue('y'));
+
+ $path = $this->Task->path . 'TestPlugin';
+ $file = $path . DS . 'Controller' . DS . 'TestPluginAppController.php';
+
+ $this->Task->expects($this->at(3))->method('createFile')
+ ->with($file, new PHPUnit_Framework_Constraint_IsAnything());
+
+ $file = $path . DS . 'Model' . DS . 'TestPluginAppModel.php';
+ $this->Task->expects($this->at(4))->method('createFile')
+ ->with($file, new PHPUnit_Framework_Constraint_IsAnything());
+
+ $this->Task->args = array();
+ $this->Task->execute();
+
+ $Folder = new Folder($path);
+ $Folder->delete();
+ }
+
+/**
+ * Test Execute
+ *
+ * @return void
+ */
+ public function testExecuteWithOneArg() {
+ $this->Task->expects($this->at(0))->method('in')
+ ->will($this->returnValue($this->_testPath));
+ $this->Task->expects($this->at(1))->method('in')
+ ->will($this->returnValue('y'));
+
+ $path = $this->Task->path . 'BakeTestPlugin';
+ $file = $path . DS . 'Controller' . DS . 'BakeTestPluginAppController.php';
+ $this->Task->expects($this->at(2))->method('createFile')
+ ->with($file, new PHPUnit_Framework_Constraint_IsAnything());
+
+ $path = $this->Task->path . 'BakeTestPlugin';
+ $file = $path . DS . 'Model' . DS . 'BakeTestPluginAppModel.php';
+ $this->Task->expects($this->at(3))->method('createFile')
+ ->with($file, new PHPUnit_Framework_Constraint_IsAnything());
+
+ $this->Task->args = array('BakeTestPlugin');
+
+ $this->Task->execute();
+
+ $Folder = new Folder($this->Task->path . 'BakeTestPlugin');
+ $Folder->delete();
+ }
+
+/**
+ * Test that findPath ignores paths that don't exist.
+ *
+ * @return void
+ */
+ public function testFindPathNonExistant() {
+ $paths = App::path('plugins');
+ $last = count($paths);
+ $paths[] = '/fake/path';
+
+ $this->Task = $this->getMock('PluginTask',
+ array('in', 'out', 'err', 'createFile', '_stop'),
+ array($this->out, $this->out, $this->in)
+ );
+ $this->Task->path = TMP . 'tests' . DS;
+
+ // Make sure the added path is filtered out.
+ $this->Task->expects($this->exactly($last))
+ ->method('out');
+
+ $this->Task->expects($this->once())
+ ->method('in')
+ ->will($this->returnValue($last));
+
+ $this->Task->findPath($paths);
+ }
+}