Skip to content

Commit

Permalink
Adding proper -plugin parameter handling
Browse files Browse the repository at this point in the history
Fixtures can now be baked into plugins.
Adding test cases.
  • Loading branch information
markstory committed Jun 7, 2009
1 parent d312cd3 commit 84a4960
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
9 changes: 4 additions & 5 deletions cake/console/libs/tasks/fixture.php
Expand Up @@ -61,7 +61,8 @@ class FixtureTask extends Shell {
* *
* @access public * @access public
*/ */
function initialize() { function __construct(&$dispatch) {
parent::__construct($dispatch);
$this->path = $this->params['working'] . DS . 'tests' . DS . 'fixtures' . DS; $this->path = $this->params['working'] . DS . 'tests' . DS . 'fixtures' . DS;
if (!class_exists('CakeSchema')) { if (!class_exists('CakeSchema')) {
App::import('Model', 'Schema'); App::import('Model', 'Schema');
Expand Down Expand Up @@ -210,12 +211,10 @@ function bake($model, $useTable = false, $importOptions = array()) {
function generateFixtureFile($model, $otherVars) { function generateFixtureFile($model, $otherVars) {
$defaults = array('table' => null, 'schema' => null, 'records' => null, 'import' => null, 'fields' => null); $defaults = array('table' => null, 'schema' => null, 'records' => null, 'import' => null, 'fields' => null);
$vars = array_merge($defaults, $otherVars); $vars = array_merge($defaults, $otherVars);


//@todo fix plugin pathing.
$path = $this->path; $path = $this->path;
if (isset($this->plugin)) { if (isset($this->plugin)) {
$pluginPath = 'plugins' . DS . Inflector::underscore($this->plugin) . DS; $path = $this->_pluginPath($this->plugin) . 'tests' . DS . 'fixtures' . DS;
$path = APP . $pluginPath . 'tests' . DS . 'fixtures' . DS;
} }
$filename = Inflector::underscore($model) . '_fixture.php'; $filename = Inflector::underscore($model) . '_fixture.php';


Expand Down
22 changes: 18 additions & 4 deletions cake/tests/cases/console/libs/tasks/fixture.test.php
Expand Up @@ -92,12 +92,12 @@ function endTest() {
* *
* @return void * @return void
**/ **/
function testInitialize() { function testConstruct() {
$this->Task->params['working'] = '/my/path'; $this->Dispatch->params['working'] = '/my/path';
$this->Task->initialize(); $Task =& new FixtureTask($this->Dispatch);


$expected = '/my/path/tests/fixtures/'; $expected = '/my/path/tests/fixtures/';
$this->assertEqual($this->Task->path, $expected); $this->assertEqual($Task->path, $expected);
} }
/** /**
* test import option array generation * test import option array generation
Expand Down Expand Up @@ -219,5 +219,19 @@ function testGenerateFixtureFile() {
$this->Task->expectAt(1, 'createFile', array($filename, new PatternExpectation('/\<\?php(.*)\?\>/ms'))); $this->Task->expectAt(1, 'createFile', array($filename, new PatternExpectation('/\<\?php(.*)\?\>/ms')));
$result = $this->Task->generateFixtureFile('Article', array()); $result = $this->Task->generateFixtureFile('Article', array());
} }
/**
* test generating files into plugins.
*
* @return void
**/
function testGeneratePluginFixtureFile() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
$this->Task->plugin = 'TestFixture';
$filename = APP . 'plugins' . DS . 'test_fixture' . DS . 'tests' . DS . 'fixtures' . DS . 'article_fixture.php';

$this->Task->expectAt(0, 'createFile', array($filename, new PatternExpectation('/Article/')));
$result = $this->Task->generateFixtureFile('Article', array());
}
} }
?> ?>

0 comments on commit 84a4960

Please sign in to comment.