/** * Adds a database to the list and sets the Schema property to this * Schema. The database can be specified as a Database object or a * DOMNode object. * * @param Database|array $database * @return Database */ public function addDatabase($database) { if ($database instanceof Database) { $platform = null; $database->setParentSchema($this); if (null === $database->getPlatform()) { if ($config = $this->getGeneratorConfig()) { $platform = $config->getConfiguredPlatform(null, $database->getName()); } $database->setPlatform($platform ? $platform : $this->platform); } $this->databases[] = $database; return $database; } // XML attributes array / hash $db = new Database(); $db->setParentSchema($this); $db->loadMapping($database); return $this->addDatabase($db); }
public function testGetBuildProperty() { $config = $this->getMock('Propel\\Generator\\Config\\GeneratorConfig'); $config->expects($this->once())->method('getBuildProperty')->with($this->equalTo('mysqlTableType'))->will($this->returnValue('InnoDB')); $schema = $this->getSchemaMock('bookstore', array('generator_config' => $config)); $database = new Database(); $database->setParentSchema($schema); $this->assertSame('InnoDB', $database->getBuildProperty('mysqlTableType')); }
public function testGetBuildProperty() { $config = $this->getMockBuilder('Propel\\Generator\\Config\\GeneratorConfig')->disableOriginalConstructor()->getMock(); $config->expects($this->once())->method('getConfigProperty')->with($this->equalTo('generator.database.adapters.mysql.tableType'))->will($this->returnValue('InnoDB')); $schema = $this->getSchemaMock('bookstore', ['generator_config' => $config]); $database = new Database(); $database->setParentSchema($schema); $this->assertSame('InnoDB', $database->getBuildProperty('generator.database.adapters.mysql.tableType')); }
public function testAutoNamespaceToDatabaseSchemaName() { $yamlConf = <<<EOF propel: database: connections: mysource: adapter: mysql classname: Propel\\Runtime\\Connection\\DebugPDO dsn: mysql:host=localhost;dbname=mydb user: root password: generator: schema: autoNamespace: true EOF; $configFilename = sys_get_temp_dir() . '/propel.yml'; $filesystem = new Filesystem(); $filesystem->dumpFile($configFilename, $yamlConf); $schema = 'TestSchema'; $config = new GeneratorConfig($configFilename); $platform = new MysqlPlatform(); $parentSchema = new Schema($platform); $parentSchema->setGeneratorConfig($config); $db = new Database(); $db->setPlatform($platform); $db->setParentSchema($parentSchema); $db->setSchema($schema); $this->assertEquals($schema, $db->getNamespace()); }