* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * @package symfony.plugins * @subpackage sfDoctrine * @author Pavel Kunc * @author Olivier Verdier * @version SVN: $Id: sfDoctrineSchemaPropelLoaderTest.php 3455 2007-02-14 16:17:48Z chtito $ */ //We need bootStrap require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); $t = new lime_test(null, new lime_output_color()); class sfDoctrineSchemaPropelLoaderTestProxy extends sfDoctrineSchemaPropelLoader { /** * Lime test object * * @var lime_test */ private $t = null; /** * Constructor * * @param lime_test $testObject */ function __construct($testObject) { $this->t = $testObject; } /** * Test launcher * * @param string $schema Path to schema file */ function launchTests($schema) { $this->t->diag('->load()'); $this->load($schema); $this->t->diag('->getTables()'); $tables = $this->tables; $this->t->is(count($tables),2,"->getTables() should return 2 table from fixture."); $this->t->ok(in_array('testTable', array_keys($tables)), "->getTables() should return 'testTable' from fixture."); $this->t->diag('->classes'); $this->t->is(count($this->classes),2,"->classes should have 2 class from fixture"); $this->t->ok($this->getClass('TestTable'),"->classes should have 'TestTable' from fixture."); $this->t->ok($this->getClass('TestTable')->getColumn('dummy_id')->hasRelation(), 'foreign relation is properly imported'); #$this->t->diag('->asDoctrineYml()'); #$yml = $this->asDoctrineYml(); #$this->t->cmp_ok(strlen($yml['source']), '>', 0, "->asDoctrineYml() doctrine YAML shoudl not be empty."); $this->t->diag('->findClassByTableName()'); $this->t->is($this->findClassByTableName('testTable')->getPhpName(),'TestTable', "->findClassByTableName() returns 'TestTable' class for 'testTable' table."); $yml = $this->asDoctrineYml(); $yml = $yml['source']; $this->t->like($yml, '@cascadeDelete: 1@', 'onDelete is generated'); } } //Load Propel schema from fixtures and run tests $schemaFixture = dirname(__FILE__)."/fixtures/propelTestSchema.xml"; $schema = new sfDoctrineSchemaPropelLoaderTestProxy($t); $schema->launchTests($schemaFixture); $schemaFixture = dirname(__FILE__)."/fixtures/propelTestSchema.yml"; $schema = new sfDoctrineSchemaPropelLoaderTestProxy($t); $schema->launchTests($schemaFixture);