Browse Source

Start updating ModelTask

- Start removing the interactive mode.
- Remove prefix munging, this should happen in the schemaCollection.
- Add a list of models when no name is given.
mark_story 12 years ago
parent
commit
11873fb6e7

+ 56 - 95
src/Console/Command/Task/ModelTask.php

@@ -89,15 +89,20 @@ class ModelTask extends BakeTask {
 	public function execute() {
 		parent::execute();
 
+		if (!isset($this->connection)) {
+			$this->connection = 'default';
+		}
+
 		if (empty($this->args)) {
-			$this->_interactive();
+			$tables = $this->listAll();
+			$this->out(__d('cake_console', 'Choose a model to bake from the following:'));
+			foreach ($tables as $table) {
+				$this->out('- ' . $table);
+			}
+			return true;
 		}
 
 		if (!empty($this->args[0])) {
-			$this->interactive = false;
-			if (!isset($this->connection)) {
-				$this->connection = 'default';
-			}
 			if (strtolower($this->args[0]) === 'all') {
 				return $this->all();
 			}
@@ -881,94 +886,48 @@ class ModelTask extends BakeTask {
  * @return string
  */
 	public function bakeTest($className) {
-		$this->Test->interactive = $this->interactive;
 		$this->Test->plugin = $this->plugin;
 		$this->Test->connection = $this->connection;
 		return $this->Test->bake('Model', $className);
 	}
 
 /**
- * outputs the a list of possible models or controllers from database
+ * Outputs the a list of possible models or controllers from database
  *
  * @param string $useDbConfig Database configuration name
  * @return array
  */
-	public function listAll($useDbConfig = null) {
-		$this->_tables = $this->getAllTables($useDbConfig);
+	public function listAll() {
+		$this->_tables = $this->_getAllTables();
 
 		$this->_modelNames = [];
 		$count = count($this->_tables);
 		for ($i = 0; $i < $count; $i++) {
 			$this->_modelNames[] = $this->_modelName($this->_tables[$i]);
 		}
-		if ($this->interactive === true) {
-			$this->out(__d('cake_console', 'Possible Models based on your current database:'));
-			$len = strlen($count + 1);
-			for ($i = 0; $i < $count; $i++) {
-				$this->out(sprintf("%${len}d. %s", $i + 1, $this->_modelNames[$i]));
-			}
-		}
 		return $this->_tables;
 	}
 
 /**
- * Interact with the user to determine the table name of a particular model
- *
- * @param string $modelName Name of the model you want a table for.
- * @param string $useDbConfig Name of the database config you want to get tables from.
- * @return string Table name
- */
-	public function getTable($modelName, $useDbConfig = null) {
-		$useTable = Inflector::tableize($modelName);
-		if (in_array($modelName, $this->_modelNames)) {
-			$modelNames = array_flip($this->_modelNames);
-			$useTable = $this->_tables[$modelNames[$modelName]];
-		}
-
-		if ($this->interactive === true) {
-			if (!isset($useDbConfig)) {
-				$useDbConfig = $this->connection;
-			}
-			$db = ConnectionManager::getDataSource($useDbConfig);
-			$fullTableName = $db->fullTableName($useTable, false);
-			$tableIsGood = false;
-			if (array_search($useTable, $this->_tables) === false) {
-				$this->out();
-				$this->out(__d('cake_console', "Given your model named '%s',\nCake would expect a database table named '%s'", $modelName, $fullTableName));
-				$tableIsGood = $this->in(__d('cake_console', 'Do you want to use this table?'), ['y', 'n'], 'y');
-			}
-			if (strtolower($tableIsGood) === 'n') {
-				$useTable = $this->in(__d('cake_console', 'What is the name of the table?'));
-			}
-		}
-		return $useTable;
-	}
-
-/**
  * Get an Array of all the tables in the supplied connection
  * will halt the script if no tables are found.
  *
- * @param string $useDbConfig Connection name to scan.
  * @return array Array of tables in the database.
+ * @throws InvalidArgumentException When connection class
+ *   has a schemaCollection method.
  */
-	public function getAllTables($useDbConfig = null) {
-		if (!isset($useDbConfig)) {
-			$useDbConfig = $this->connection;
-		}
-
+	protected function _getAllTables() {
 		$tables = [];
-		$db = ConnectionManager::getDataSource($useDbConfig);
-		$db->cacheSources = false;
-		$usePrefix = empty($db->config['prefix']) ? '' : $db->config['prefix'];
-		if ($usePrefix) {
-			foreach ($db->listSources() as $table) {
-				if (!strncmp($table, $usePrefix, strlen($usePrefix))) {
-					$tables[] = substr($table, strlen($usePrefix));
-				}
-			}
-		} else {
-			$tables = $db->listSources();
+		$db = ConnectionManager::get($this->connection);
+		if (!method_exists($db, 'schemaCollection')) {
+			$this->err(__d(
+				'cake_console',
+				'Connections need to implement schemaCollection() to be used with bake.'
+			));
+			return $this->_stop();
 		}
+		$schema = $db->schemaCollection();
+		$tables = $schema->listTables();
 		if (empty($tables)) {
 			$this->err(__d('cake_console', 'Your database does not have any tables.'));
 			return $this->_stop();
@@ -978,36 +937,19 @@ class ModelTask extends BakeTask {
 	}
 
 /**
- * Forces the user to specify the model he wants to bake, and returns the selected model name.
+ * Interact with the user to determine the table name of a particular model
  *
- * @param string $useDbConfig Database config name
- * @return string The model name
+ * @param string $modelName Name of the model you want a table for.
+ * @param string $useDbConfig Name of the database config you want to get tables from.
+ * @return string Table name
  */
-	public function getName($useDbConfig = null) {
-		$this->listAll($useDbConfig);
-
-		$enteredModel = '';
-
-		while (!$enteredModel) {
-			$enteredModel = $this->in(__d('cake_console', "Enter a number from the list above,\n" .
-				"type in the name of another model, or 'q' to exit"), null, 'q');
-
-			if ($enteredModel === 'q') {
-				$this->out(__d('cake_console', 'Exit'));
-				return $this->_stop();
-			}
-
-			if (!$enteredModel || intval($enteredModel) > count($this->_modelNames)) {
-				$this->err(__d('cake_console', "The model name you supplied was empty,\n" .
-					"or the number you selected was not an option. Please try again."));
-				$enteredModel = '';
-			}
-		}
-		if (intval($enteredModel) > 0 && intval($enteredModel) <= count($this->_modelNames)) {
-			return $this->_modelNames[intval($enteredModel) - 1];
+	public function getTable($modelName, $useDbConfig = null) {
+		$useTable = Inflector::tableize($modelName);
+		if (in_array($modelName, $this->_modelNames)) {
+			$modelNames = array_flip($this->_modelNames);
+			$useTable = $this->_tables[$modelNames[$modelName]];
 		}
-
-		return $enteredModel;
+		return $useTable;
 	}
 
 /**
@@ -1036,8 +978,28 @@ class ModelTask extends BakeTask {
 		])->addOption('force', [
 			'short' => 'f',
 			'help' => __d('cake_console', 'Force overwriting existing files without prompting.')
+		])->addOption('table', [
+			'help' => __d('cake_console', 'The table name to use if you have non-conventional table names.')
+		])->addOption('no-entity', [
+			'boolean' => true,
+			'help' => __d('cake_console', 'Disable generating an entity class.')
+		])->addOption('no-table', [
+			'boolean' => true,
+			'help' => __d('cake_console', 'Disable generating a table class.')
+		])->addOption('no-validation', [
+			'boolean' => true,
+			'help' => __d('cake_console', 'Disable generating validation rules.')
+		])->addOption('no-associations', [
+			'boolean' => true,
+			'help' => __d('cake_console', 'Disable generating associations.')
+		])->addOption('no-fields', [
+			'boolean' => true,
+			'help' => __d('cake_console', 'Disable generating accessible fields in the entity.')
+		])->addOption('fields', [
+			'help' => __d('cake_console', 'A comma separated list of fields to make accessible.')
 		])->epilog(
-			__d('cake_console', 'Omitting all arguments and options will enter into an interactive mode.')
+			__d('cake_console', 'Omitting all arguments and options will list ' .
+				'the table names you can generate models for')
 		);
 
 		return $parser;
@@ -1052,7 +1014,6 @@ class ModelTask extends BakeTask {
  * @see FixtureTask::bake
  */
 	public function bakeFixture($className, $useTable = null) {
-		$this->Fixture->interactive = $this->interactive;
 		$this->Fixture->connection = $this->connection;
 		$this->Fixture->plugin = $this->plugin;
 		$this->Fixture->bake($className, $useTable);

+ 45 - 156
tests/TestCase/Console/Command/Task/ModelTaskTest.php

@@ -1,9 +1,5 @@
 <?php
 /**
- * ModelTaskTest file
- *
- * Test Case for test generation shell task
- *
  * CakePHP : Rapid Development Framework (http://cakephp.org)
  * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
  *
@@ -48,16 +44,15 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function setUp() {
-		$this->markTestIncomplete('Model baking will not work as models do not work.');
-
 		parent::setUp();
-		$out = $this->getMock('Cake\Console\ConsoleOutput', array(), array(), '', false);
-		$in = $this->getMock('Cake\Console\ConsoleInput', array(), array(), '', false);
+		$out = $this->getMock('Cake\Console\ConsoleOutput', [], [], '', false);
+		$in = $this->getMock('Cake\Console\ConsoleInput', [], [], '', false);
 
 		$this->Task = $this->getMock('Cake\Console\Command\Task\ModelTask',
 			array('in', 'err', 'createFile', '_stop', '_checkUnitTest'),
 			array($out, $out, $in)
 		);
+		$this->Task->connection = 'test';
 		$this->_setupOtherMocks();
 	}
 
@@ -67,8 +62,8 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	protected function _useMockedOut() {
-		$out = $this->getMock('Cake\Console\ConsoleOutput', array(), array(), '', false);
-		$in = $this->getMock('Cake\Console\ConsoleInput', array(), array(), '', false);
+		$out = $this->getMock('Cake\Console\ConsoleOutput', [], [], '', false);
+		$in = $this->getMock('Cake\Console\ConsoleInput', [], [], '', false);
 
 		$this->Task = $this->getMock('Cake\Console\Command\Task\ModelTask',
 			array('in', 'out', 'err', 'hr', 'createFile', '_stop', '_checkUnitTest'),
@@ -83,15 +78,14 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	protected function _setupOtherMocks() {
-		$out = $this->getMock('Cake\Console\ConsoleOutput', array(), array(), '', false);
-		$in = $this->getMock('Cake\Console\ConsoleInput', array(), array(), '', false);
+		$out = $this->getMock('Cake\Console\ConsoleOutput', [], [], '', false);
+		$in = $this->getMock('Cake\Console\ConsoleInput', [], [], '', false);
 
-		$this->Task->Fixture = $this->getMock('Cake\Console\Command\Task\FixtureTask', array(), array($out, $out, $in));
-		$this->Task->Test = $this->getMock('Cake\Console\Command\Task\FixtureTask', array(), array($out, $out, $in));
+		$this->Task->Fixture = $this->getMock('Cake\Console\Command\Task\FixtureTask', [], [$out, $out, $in]);
+		$this->Task->Test = $this->getMock('Cake\Console\Command\Task\FixtureTask', [], [$out, $out, $in]);
 		$this->Task->Template = new TemplateTask($out, $out, $in);
 
 		$this->Task->name = 'Model';
-		$this->Task->interactive = true;
 	}
 
 /**
@@ -105,30 +99,14 @@ class ModelTaskTest extends TestCase {
 	}
 
 /**
- * Test that listAll scans the database connection and lists all the tables in it.s
- *
- * @return void
- */
-	public function testListAllArgument() {
-		$this->_useMockedOut();
-
-		$result = $this->Task->listAll('test');
-		$this->assertContains('bake_articles', $result);
-		$this->assertContains('bake_articles_bake_tags', $result);
-		$this->assertContains('bake_tags', $result);
-		$this->assertContains('bake_comments', $result);
-		$this->assertContains('category_threads', $result);
-	}
-
-/**
  * Test that listAll uses the connection property
  *
  * @return void
  */
 	public function testListAllConnection() {
 		$this->_useMockedOut();
-
 		$this->Task->connection = 'test';
+
 		$result = $this->Task->listAll();
 		$this->assertContains('bake_articles', $result);
 		$this->assertContains('bake_articles_bake_tags', $result);
@@ -138,135 +116,12 @@ class ModelTaskTest extends TestCase {
 	}
 
 /**
- * Test that getName interacts with the user and returns the model name.
- *
- * @return void
- */
-	public function testGetNameQuit() {
-		$this->Task->expects($this->once())->method('in')->will($this->returnValue('q'));
-		$this->Task->expects($this->once())->method('_stop');
-		$this->Task->getName('test');
-	}
-
-/**
- * test getName with a valid option.
- *
- * @return void
- */
-	public function testGetNameValidOption() {
-		$listing = $this->Task->listAll('test');
-		$this->Task->expects($this->any())->method('in')->will($this->onConsecutiveCalls(1, 4));
-
-		$result = $this->Task->getName('test');
-		$this->assertEquals(Inflector::classify($listing[0]), $result);
-
-		$result = $this->Task->getName('test');
-		$this->assertEquals(Inflector::classify($listing[3]), $result);
-	}
-
-/**
- * test that an out of bounds option causes an error.
- *
- * @return void
- */
-	public function testGetNameWithOutOfBoundsOption() {
-		$this->Task->expects($this->any())->method('in')->will($this->onConsecutiveCalls(99, 1));
-		$this->Task->expects($this->once())->method('err');
-
-		$this->Task->getName('test');
-	}
-
-/**
- * Test table name interactions
- *
- * @return void
- */
-	public function testGetTableName() {
-		$this->Task->expects($this->at(0))->method('in')->will($this->returnValue('y'));
-		$result = $this->Task->getTable('BakeArticle', 'test');
-		$expected = 'bake_articles';
-		$this->assertEquals($expected, $result);
-	}
-
-/**
- * test getting a custom table name.
- *
- * @return void
- */
-	public function testGetTableNameCustom() {
-		$this->Task->expects($this->any())->method('in')->will($this->onConsecutiveCalls('n', 'my_table'));
-		$result = $this->Task->getTable('BakeArticle', 'test');
-		$expected = 'my_table';
-		$this->assertEquals($expected, $result);
-	}
-
-/**
- * test getTable with non-conventional tablenames
- *
- * @return void
- */
-	public function testGetTableOddTableInteractive() {
-		$out = $this->getMock('Cake\Console\ConsoleOutput', array(), array(), '', false);
-		$in = $this->getMock('Cake\Console\ConsoleInput', array(), array(), '', false);
-		$this->Task = $this->getMock('Cake\Console\Command\Task\ModelTask',
-			array('in', 'err', '_stop', '_checkUnitTest', 'getAllTables'),
-			array($out, $out, $in)
-		);
-		$this->_setupOtherMocks();
-
-		$this->Task->connection = 'test';
-		$this->Task->path = '/my/path/';
-		$this->Task->interactive = true;
-
-		$this->Task->expects($this->once())->method('getAllTables')->will($this->returnValue(array('articles', 'bake_odd')));
-		$this->Task->expects($this->any())->method('in')
-			->will($this->onConsecutiveCalls(
-				2 // bake_odd
-			));
-
-		$result = $this->Task->getName();
-		$expected = 'BakeOdd';
-		$this->assertEquals($expected, $result);
-
-		$result = $this->Task->getTable($result);
-		$expected = 'bake_odd';
-		$this->assertEquals($expected, $result);
-	}
-
-/**
- * test getTable with non-conventional tablenames
- *
- * @return void
- */
-	public function testGetTableOddTable() {
-		$out = $this->getMock('Cake\Console\ConsoleOutput', array(), array(), '', false);
-		$in = $this->getMock('Cake\Console\ConsoleInput', array(), array(), '', false);
-		$this->Task = $this->getMock('Cake\Console\Command\Task\ModelTask',
-			array('in', 'err', '_stop', '_checkUnitTest', 'getAllTables'),
-			array($out, $out, $in)
-		);
-		$this->_setupOtherMocks();
-
-		$this->Task->connection = 'test';
-		$this->Task->path = '/my/path/';
-		$this->Task->interactive = false;
-		$this->Task->args = array('BakeOdd');
-
-		$this->Task->expects($this->once())->method('getAllTables')->will($this->returnValue(array('articles', 'bake_odd')));
-
-		$this->Task->listAll();
-
-		$result = $this->Task->getTable('BakeOdd');
-		$expected = 'bake_odd';
-		$this->assertEquals($expected, $result);
-	}
-
-/**
  * test that initializing the validations works.
  *
  * @return void
  */
 	public function testInitValidations() {
+		$this->markTestIncomplete('Not done here yet');
 		$result = $this->Task->initValidations();
 		$this->assertTrue(in_array('notEmpty', $result));
 	}
@@ -278,6 +133,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testFieldValidationGuessing() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->interactive = false;
 		$this->Task->initValidations();
 
@@ -312,6 +168,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testInteractiveFieldValidation() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->initValidations();
 		$this->Task->interactive = true;
 		$this->Task->expects($this->any())->method('in')
@@ -328,6 +185,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testInteractiveFieldValidationWithBogusResponse() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->_useMockedOut();
 		$this->Task->initValidations();
 		$this->Task->interactive = true;
@@ -349,6 +207,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testInteractiveFieldValidationWithRegexp() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->initValidations();
 		$this->Task->interactive = true;
 		$this->Task->expects($this->any())->method('in')
@@ -365,6 +224,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testSkippingChoiceInteractiveFieldValidation() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->initValidations();
 		$this->Task->interactive = true;
 		$this->Task->expects($this->any())->method('in')
@@ -381,6 +241,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testSkippingAnotherInteractiveFieldValidation() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->initValidations();
 		$this->Task->interactive = true;
 		$this->Task->expects($this->any())->method('in')
@@ -398,6 +259,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testInteractiveDoValidationWithSkipping() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->expects($this->any())
 			->method('in')
 			->will($this->onConsecutiveCalls('35', '24', 'n', '11', 's'));
@@ -459,6 +321,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testNonInteractiveDoValidation() {
+		$this->markTestIncomplete('Not done here yet');
 		$Model = $this->getMock('Model');
 		$Model->primaryKey = 'id';
 		$Model->expects($this->any())
@@ -523,6 +386,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testFindPrimaryKey() {
+		$this->markTestIncomplete('Not done here yet');
 		$fields = array(
 			'one' => array(),
 			'two' => array(),
@@ -544,6 +408,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testFindDisplayFieldNone() {
+		$this->markTestIncomplete('Not done here yet');
 		$fields = array(
 			'id' => array(), 'tagname' => array(), 'body' => array(),
 			'created' => array(), 'modified' => array()
@@ -559,6 +424,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testFindDisplayName() {
+		$this->markTestIncomplete('Not done here yet');
 		$fields = array(
 			'id' => array(), 'tagname' => array(), 'body' => array(),
 			'created' => array(), 'modified' => array()
@@ -576,6 +442,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testBelongsToGeneration() {
+		$this->markTestIncomplete('Not done here yet');
 		$model = new Model(array('ds' => 'test', 'name' => 'BakeComment'));
 		$result = $this->Task->findBelongsTo($model, array());
 		$expected = array(
@@ -614,6 +481,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testHasManyHasOneGeneration() {
+		$this->markTestIncomplete('Not done here yet');
 		$model = new Model(array('ds' => 'test', 'name' => 'BakeArticle'));
 		$this->Task->connection = 'test';
 		$this->Task->listAll();
@@ -663,6 +531,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testHasAndBelongsToManyGeneration() {
+		$this->markTestIncomplete('Not done here yet');
 		$model = new Model(array('ds' => 'test', 'name' => 'BakeArticle'));
 		$this->Task->connection = 'test';
 		$this->Task->listAll();
@@ -687,6 +556,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testDoAssociationsNonInteractive() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->connection = 'test';
 		$this->Task->interactive = false;
 		$model = new Model(array('ds' => 'test', 'name' => 'BakeArticle'));
@@ -725,6 +595,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testDoActsAs() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->connection = 'test';
 		$this->Task->interactive = false;
 		$model = new Model(array('ds' => 'test', 'name' => 'NumberTree'));
@@ -739,6 +610,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testBakeFixture() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->plugin = 'TestPlugin';
 		$this->Task->interactive = true;
 		$this->Task->Fixture->expects($this->at(0))->method('bake')->with('BakeArticle', 'bake_articles');
@@ -755,6 +627,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testBakeTest() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->plugin = 'TestPlugin';
 		$this->Task->interactive = true;
 		$this->Task->Test->expects($this->at(0))->method('bake')->with('Model', 'BakeArticle');
@@ -772,6 +645,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testConfirmAssociations() {
+		$this->markTestIncomplete('Not done here yet');
 		$associations = array(
 			'hasOne' => array(
 				array(
@@ -814,6 +688,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testInOptions() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->_useMockedOut();
 
 		$options = array('one', 'two', 'three');
@@ -836,6 +711,7 @@ class ModelTaskTest extends TestCase {
  * @return void
  */
 	public function testBakeValidation() {
+		$this->markTestIncomplete('Not done here yet');
 		$validate = array(
 			'name' => array(
 				'notempty' => 'notEmpty'
@@ -873,6 +749,7 @@ STRINGEND;
  * @return void
  */
 	public function testBakeRelations() {
+		$this->markTestIncomplete('Not done here yet');
 		$associations = array(
 			'belongsTo' => array(
 				array(
@@ -931,6 +808,7 @@ STRINGEND;
  * @return void
  */
 	public function testBakeWithPlugin() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->plugin = 'ControllerTest';
 
 		//fake plugin path
@@ -952,6 +830,7 @@ STRINGEND;
  * @return void
  */
 	public function testBakeWithBehaviors() {
+		$this->markTestIncomplete('Not done here yet');
 		$result = $this->Task->bake('NumberTree', array('actsAs' => array('Tree', 'PluginName.Sluggable')));
 		$expected = <<<TEXT
 /**
@@ -973,6 +852,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteWithNamedModel() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->connection = 'test';
 		$this->Task->path = '/my/path/';
 		$this->Task->args = array('BakeArticle');
@@ -1006,6 +886,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteWithNamedModelVariations($name) {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->connection = 'test';
 		$this->Task->path = '/my/path/';
 		$this->Task->expects($this->once())->method('_checkUnitTest')->will($this->returnValue(1));
@@ -1024,6 +905,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteWithNamedModelHasManyCreated() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->connection = 'test';
 		$this->Task->path = '/my/path/';
 		$this->Task->args = array('BakeArticle');
@@ -1042,6 +924,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteIntoAll() {
+		$this->markTestIncomplete('Not done here yet');
 		$count = count($this->Task->listAll('test'));
 		if ($count != count($this->fixtures)) {
 			$this->markTestSkipped('Additional tables detected.');
@@ -1095,6 +978,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteIntoAllOddTables() {
+		$this->markTestIncomplete('Not done here yet');
 		$out = $this->getMock('Cake\Console\ConsoleOutput', array(), array(), '', false);
 		$in = $this->getMock('Cake\Console\ConsoleInput', array(), array(), '', false);
 		$this->Task = $this->getMock('Cake\Console\Command\Task\ModelTask',
@@ -1151,6 +1035,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteIntoBakeOddTables() {
+		$this->markTestIncomplete('Not done here yet');
 		$out = $this->getMock('Cake\Console\ConsoleOutput', array(), array(), '', false);
 		$in = $this->getMock('Cake\Console\ConsoleInput', array(), array(), '', false);
 		$this->Task = $this->getMock('Cake\Console\Command\Task\ModelTask',
@@ -1207,6 +1092,7 @@ TEXT;
  * @return void
  */
 	public function testSkipTablesAndAll() {
+		$this->markTestIncomplete('Not done here yet');
 		$count = count($this->Task->listAll('test'));
 		if ($count != count($this->fixtures)) {
 			$this->markTestSkipped('Additional tables detected.');
@@ -1246,6 +1132,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteIntoInteractive() {
+		$this->markTestIncomplete('Not done here yet');
 		$tables = $this->Task->listAll('test');
 		$article = array_search('bake_articles', $tables) + 1;
 
@@ -1286,6 +1173,7 @@ TEXT;
  * @return void
  */
 	public function testExecuteWithNonExistantTableName() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->connection = 'test';
 		$this->Task->path = '/my/path/';
 
@@ -1305,6 +1193,7 @@ TEXT;
  * @return void
  */
 	public function testForcedExecuteWithNonExistantTableName() {
+		$this->markTestIncomplete('Not done here yet');
 		$this->Task->connection = 'test';
 		$this->Task->path = '/my/path/';