Adding proper -plugin parameter handling

Fixtures can now be baked into plugins.
Adding test cases.
This commit is contained in:
mark_story 2009-06-06 20:03:04 -04:00
parent d312cd3215
commit 84a496083f
2 changed files with 22 additions and 9 deletions

View file

@ -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');
@ -211,11 +212,9 @@ class FixtureTask extends Shell {
$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';

View file

@ -92,12 +92,12 @@ class FixtureTaskTest extends CakeTestCase {
*
* @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 @@ class FixtureTaskTest extends CakeTestCase {
$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());
}
}
?>