Skip to content
Permalink
Browse files

Adding proper -plugin parameter handling

Fixtures can now be baked into plugins.
Adding test cases.
  • Loading branch information...
markstory committed Jun 7, 2009
1 parent d312cd3 commit 84a496083fc324071014c282b1e2010642ced00b
Showing with 22 additions and 9 deletions.
  1. +4 −5 cake/console/libs/tasks/fixture.php
  2. +18 −4 cake/tests/cases/console/libs/tasks/fixture.test.php
@@ -61,7 +61,8 @@ class FixtureTask extends Shell {
*
* @access public
*/
function initialize() {
function __construct(&$dispatch) {
parent::__construct($dispatch);
$this->path = $this->params['working'] . DS . 'tests' . DS . 'fixtures' . DS;
if (!class_exists('CakeSchema')) {
App::import('Model', 'Schema');
@@ -210,12 +211,10 @@ function bake($model, $useTable = false, $importOptions = array()) {
function generateFixtureFile($model, $otherVars) {
$defaults = array('table' => null, 'schema' => null, 'records' => null, 'import' => null, 'fields' => null);
$vars = array_merge($defaults, $otherVars);
//@todo fix plugin pathing.
$path = $this->path;
if (isset($this->plugin)) {
$pluginPath = 'plugins' . DS . Inflector::underscore($this->plugin) . DS;
$path = APP . $pluginPath . 'tests' . DS . 'fixtures' . DS;
$path = $this->_pluginPath($this->plugin) . 'tests' . DS . 'fixtures' . DS;
}
$filename = Inflector::underscore($model) . '_fixture.php';
@@ -92,12 +92,12 @@ function endTest() {
*
* @return void
**/
function testInitialize() {
$this->Task->params['working'] = '/my/path';
$this->Task->initialize();
function testConstruct() {
$this->Dispatch->params['working'] = '/my/path';
$Task =& new FixtureTask($this->Dispatch);
$expected = '/my/path/tests/fixtures/';
$this->assertEqual($this->Task->path, $expected);
$this->assertEqual($Task->path, $expected);
}
/**
* test import option array generation
@@ -219,5 +219,19 @@ function testGenerateFixtureFile() {
$this->Task->expectAt(1, 'createFile', array($filename, new PatternExpectation('/\<\?php(.*)\?\>/ms')));
$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.
You can’t perform that action at this time.