public function setUp() { if (!class_exists('Post')) { $schema = <<<EOF <database name="lockable_behavior" defaultIdMethod="native"> <table name="post"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="title" type="varchar" size="255" /> <column name="description" type="longvarchar" /> <behavior name="lockable"> <parameter name="apply_to" value="title, description" /> <parameter name="with_description" value="true" /> </behavior> </table> </database> EOF; $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.visibility.class', '../src/LockableBehavior'); $builder->setConfig($config); $builder->setSchema($schema); $builder->build(); } }
public function setUp() { $tables = array('Post' => <<<EOF <database name="event_dispatcher_behavior" defaultIdMethod="native"> <table name="post"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" required="true" /> <behavior name="event_dispatcher" /> </table> </database> EOF , 'Thread' => <<<EOF <database name="event_dispatcher_behavior2" defaultIdMethod="native"> <table name="thread"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="text" type="VARCHAR" required="true" /> <column name="allowed" type="boolean" required="true" defaultValue="false" /> <behavior name="event_dispatcher" /> </table> </database> EOF ); foreach ($tables as $className => $schema) { if (!class_exists($className)) { $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.event_dispatcher.class', '../src/EventDispatcherBehavior'); $builder->setConfig($config); $builder->setSchema($schema); $builder->build(); } } }
protected function setUp() { parent::setUp(); $this->loadPropelQuickBuilder(); $schema = <<<XML <database name="default" package="vendor.bundles.Propel.PropelBundle.Tests.Fixtures.DataFixtures.Loader" namespace="Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader" defaultIdMethod="native"> <table name="book"> <column name="id" type="integer" primaryKey="true" /> <column name="name" type="varchar" size="255" /> <column name="description" type="varchar" /> <column name="author_id" type="integer" required="false" defaultValue="null" /> <column name="complementary_infos" required="false" type="object" description="An object column" /> <foreign-key foreignTable="book_author" onDelete="RESTRICT" onUpdate="CASCADE"> <reference local="author_id" foreign="id" /> </foreign-key> </table> <table name="book_author"> <column name="id" type="integer" primaryKey="true" /> <column name="name" type="varchar" size="255" /> </table> </database> XML; $builder = new \PropelQuickBuilder(); $builder->setSchema($schema); if (class_exists('Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\Book')) { $builder->setClassTargets(array()); } $this->con = $builder->build(); }
public function testYamlLoadManyToMany() { $schema = <<<XML <database name="default" package="vendor.bundles.Propel.PropelBundle.Tests.Fixtures.DataFixtures.Loader" namespace="Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader" defaultIdMethod="native"> <table name="book" phpName="YamlManyToManyBook"> <column name="id" type="integer" primaryKey="true" /> <column name="name" type="varchar" size="255" /> </table> <table name="author" phpName="YamlManyToManyAuthor"> <column name="id" type="integer" primaryKey="true" /> <column name="name" type="varchar" size="255" /> </table> <table name="book_author" phpName="YamlManyToManyBookAuthor"> <column name="book_id" type="integer" required="true" primaryKey="true" /> <column name="author_id" type="integer" required="true" primaryKey="true" /> <foreign-key foreignTable="book" phpName="Book" onDelete="CASCADE" onUpdate="CASCADE"> <reference local="book_id" foreign="id" /> </foreign-key> <foreign-key foreignTable="author" phpName="Author" onDelete="CASCADE" onUpdate="CASCADE"> <reference local="author_id" foreign="id" /> </foreign-key> </table> </database> XML; $fixtures = <<<YAML Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlManyToManyAuthor: Author_1: name: 'A famous one' Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlManyToManyBook: Book_1: name: 'An important one' Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlManyToManyBookAuthor: BookAuthor_1: book_id: Book_1 author_id: Author_1 YAML; $filename = $this->getTempFile($fixtures); $builder = new \PropelQuickBuilder(); $builder->setSchema($schema); $con = $builder->build(); $loader = new YamlDataLoader(__DIR__ . '/../../Fixtures/DataFixtures/Loader'); $loader->load(array($filename), 'default'); $books = \Propel\PropelBundle\Tests\Fixtures\DataFixtures\Loader\YamlManyToManyBookPeer::doSelect(new \Criteria(), $con); $this->assertCount(1, $books); $this->assertInstanceOf('Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlManyToManyBook', $books[0]); $authors = \Propel\PropelBundle\Tests\Fixtures\DataFixtures\Loader\YamlManyToManyAuthorPeer::doSelect(new \Criteria(), $con); $this->assertCount(1, $authors); $this->assertInstanceOf('Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlManyToManyAuthor', $authors[0]); $bookAuthors = \Propel\PropelBundle\Tests\Fixtures\DataFixtures\Loader\YamlManyToManyBookAuthorPeer::doSelect(new \Criteria(), $con); $this->assertCount(1, $bookAuthors); $this->assertInstanceOf('Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlManyToManyBookAuthor', $bookAuthors[0]); }
public function setUp() { $this->schema = <<<EOF <database name="bookstore" defaultIdMethod="native"> <table name="typehinted_object"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" size="100" primaryString="true" /> <column name="roles" type="array" /> <behavior name="typehintable"> <parameter name="roles" value="array" /> </behavior> </table> <table name="typehinted_user"> <column name="id" type="INTEGER" primaryKey="true" autoIncrement="true"/> <column name="name" type="VARCHAR" size="32"/> <column name="catched_exception" type="OBJECT" /> <column name="foo" type="OBJECT" /> <behavior name="typehintable"> <parameter name="typehinted_group" value="BaseTypehintedGroup" /> <parameter name="catched_exception" value="Exception" /> <parameter name="foo" value="TypehintedUser" /> <parameter name="nullable_columns" value="foo, catched_exception" /> </behavior> </table> <table name="typehinted_group"> <column name="id" type="INTEGER" primaryKey="true" autoIncrement="true"/> <column name="name" type="VARCHAR" size="32"/> </table> <table name="typehinted_user_group" isCrossRef="true"> <column name="user_id" type="INTEGER" primaryKey="true"/> <column name="group_id" type="INTEGER" primaryKey="true"/> <foreign-key foreignTable="typehinted_user"> <reference local="user_id" foreign="id"/> </foreign-key> <foreign-key foreignTable="typehinted_group"> <reference local="group_id" foreign="id"/> </foreign-key> </table> </database> EOF; if (!class_exists('TypehintedObject')) { $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.typehintable.class', __DIR__ . '/../src/TypehintableBehavior'); $builder->setConfig($config); $builder->setSchema($this->schema); $builder->build(); } }
protected function simpleBuild($SchemaFile, $Namespace) { $XML = $this->LoadSchema($SchemaFile, $Namespace); $builder = new \PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behaviorCacheableClass', 'RickySu\\CacheableBehaviorBundle\\Behavior\\CacheableBehavior'); $builder->setConfig($config); $builder->setSchema($XML); $builder->build(); }
public function setUp() { parent::setUp(); $this->loadPropelQuickBuilder(); $schema = file_get_contents(__DIR__ . '/../Fixtures/translation_schema.xml'); $builder = new \PropelQuickBuilder(); $builder->setSchema($schema); if (class_exists('Propel\\PropelBundle\\Tests\\Fixtures\\Model\\map\\TranslationTableMap')) { $builder->setClassTargets(array()); } $this->con = $builder->build(); }
public function setUp() { parent::setUp(); $schema = file_get_contents(__DIR__ . '/../Resources/config/propel/acl_schema.xml'); $builder = new \PropelQuickBuilder(); $builder->setSchema($schema); if (!class_exists('Propel\\Bundle\\PropelAclBundle\\Model\\Acl\\map\\AclClassTableMap')) { $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query')); } else { $builder->setClassTargets(array()); } $this->con = $builder->build(); }
protected function setUp() { //begin of setting runtime environments $fileSystem = vfsStream::setup(); $this->className = 'ExampleInstantiator'; $this->extends = '\\stdClass'; $this->indention = ' '; $this->namespace = 'Test\\Net\\Bazzline\\Propel'; $this->path = $fileSystem->url(); $this->prefix = 'create'; //end of setting runtime environments $buildIsNeeded = !class_exists('TableOne') || !class_exists('TableTwo'); if ($buildIsNeeded) { $schema = <<<EOF <database name="example_database" defaultIdMethod="native"> <behavior name="add_to_entity_instantiator"> <parameter name="entity_instantiator_class_name" value="{$this->className}" /> <parameter name="entity_instantiator_extends" value="{$this->extends}" /> <parameter name="entity_instantiator_indention" value="{$this->indention}" /> <parameter name="entity_instantiator_namespace" value="{$this->namespace}" /> <parameter name="entity_instantiator_path_to_output" value="{$this->path}" /> <parameter name="entity_method_name_prefix" value="{$this->prefix}" /> <parameter name="entity_add_to_entity_instantiator" value="true" /> </behavior> <table name="table_one"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> </table> <table name="table_two"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <behavior name="add_to_entity_instantiator"> <parameter name="entity_add_to_entity_instantiator" value="false" /> </behavior> </table> </database> EOF; $builder = new PropelQuickBuilder(); $configuration = $builder->getConfig(); $configuration->setBuildProperty('behavior.add_to_entity_instantiator.class', __DIR__ . '/../source/AddToEntityInstantiatorBehavior'); $builder->setConfig($configuration); $builder->setSchema($schema); $builder->build(); //we have to call generate manually since it is called only when php execution is finished Manager::getInstance()->generate(); } }
public function setUp() { if (!class_exists('DateTimeColumnTypeEntity')) { $schema = <<<EOF <database name="generated_object_datetime_type_test"> <table name="date_time_column_type_entity" idMethod="native"> <column name="id" primaryKey="true" type="INTEGER" phpName="Id" required="true"/> <column name="primary_date" primaryKey="true" type="DATE" phpName="PrimaryDate" required="true"/> </table> </database> EOF; $builder = new PropelQuickBuilder(); $builder->getConfig()->setBuildProperty('defaultDateFormat', null); $builder->setSchema($schema); $builder->build(); } }
protected function loadAndBuild() { $this->loadPropelQuickBuilder(); if (!class_exists('Glorpen\\Propel\\PropelBundle\\Tests\\Fixtures\\Model\\Book', false)) { $builder = new \PropelQuickBuilder(); $builder->getConfig()->setBuildProperty('behaviorEventClass', 'Behaviors.EventBehavior'); $builder->getConfig()->setBuildProperty('behaviorExtendClass', 'Behaviors.ExtendBehavior'); $builder->setSchema(static::$schema); $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query', 'peerstub', 'querystub')); file_put_contents("/tmp/a.php", $builder->getClasses()); $builder->build(); $con = new EventPropelPDO('sqlite::memory:'); $con->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_WARNING); $name = $builder->getDatabase()->getName(); \Propel::setConnection($name, $con, \Propel::CONNECTION_READ); \Propel::setConnection($name, $con, \Propel::CONNECTION_WRITE); $builder->buildSQL($con); } }
public function setUp() { parent::setUp(); if (!class_exists('My\\NestedSet1')) { $schema = <<<EOF <database name="nested_set_database" namespace="My"> <table name="nested_set_1"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="title" type="VARCHAR" size="100" primaryString="true" /> <behavior name="nested_set" /> </table> </database> EOF; $builder = new PropelQuickBuilder(); $builder->setSchema($schema); $builder->build(); } }
public function setUp() { if (!class_exists('Post')) { $schema = <<<EOF <database name="create_entity_behavior" defaultIdMethod="native"> <table name="Post"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <behavior name="create_entity" /> </table> </database> EOF; $builder = new PropelQuickBuilder(); $configuration = $builder->getConfig(); $configuration->setBuildProperty('behavior.create_entity.class', '../source/CreateEntityBehavior'); $builder->setConfig($configuration); $builder->setSchema($schema); $builder->build(); } }
public function setUp() { if (!class_exists('TestModel')) { $schema = <<<EOF <database name="TestDatabase" defaultIdMethod="native"> <table name="TestModel"> <column name="id" phpName="Id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true" /> <column name="email_address" phpName="EmailAddress" type="VARCHAR" size="100" required="true" /> <behavior name="auditable" /> </table> </database> EOF; $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.auditable.class', __DIR__ . '/../src/AuditableBehavior'); $builder->setConfig($config); $builder->setSchema($schema); $this->con = $builder->build(); } }
public function setUp() { if (!class_exists('My\\Post')) { $schema = <<<EOF <database name="event_dispatcher_behavior" defaultIdMethod="native" namespace="My"> <table name="post"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" required="true" /> <behavior name="event_dispatcher" /> </table> </database> EOF; $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.event_dispatcher.class', '../src/EventDispatcherBehavior'); $builder->setConfig($config); $builder->setSchema($schema); $builder->build(); } }
/** * test if issue 425 is resolved */ public function testLoadBehavior() { $schema = <<<SCHEMA <database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.propelorm.org/1.6/database.xsd" name="default" defaultIdMethod="native"> <table name="dummyTable"> <behavior name="foobar"/> <column name="dummyField1" type="char" size="36" required="true" primaryKey="true" /> <column name="dummyField2" type="integer" required="true" /> </table> </database> SCHEMA; $generatorConfig = new \QuickGeneratorConfig(); $generatorConfig->setBuildProperty('behaviorFoobarClass', 'Foobar\\Behavior\\Foobar'); $builder = new \PropelQuickBuilder(); $builder->setConfig($generatorConfig); $builder->setSchema($schema); $builder->build(); $this->assertTrue(class_exists('DummyTable'), 'dummy table class is correctly generated'); }
public function setUp() { if (!class_exists('Author')) { $schema = <<<EOF <database name="bookstore" defaultIdMethod="native"> <table name="author"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="first_name" type="VARCHAR" size="255" /> <column name="last_name" type="VARCHAR" size="255" /> <behavior name="providerBase" /> </table> </database> EOF; $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.provider_base.class', __DIR__ . '/../src/ProviderBaseBehavior/ProviderBaseBehavior'); $builder->setConfig($config); $builder->setSchema($schema); $con = $builder->build(); } }
public function setUp() { $this->loadPropelQuickBuilder(); $schema = <<<SCHEMA <database name="users" defaultIdMethod="native" namespace="Propel\\PropelBundle\\Tests\\Fixtures\\Model"> <table name="user"> <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" /> <column name="username" type="varchar" size="255" primaryString="true" /> <column name="algorithm" type="varchar" size="50" /> <column name="salt" type="varchar" size="255" /> <column name="password" type="varchar" size="255" /> <column name="expires_at" type="timestamp" /> <column name="roles" type="array" /> </table> </database> SCHEMA; $builder = new \PropelQuickBuilder(); $builder->setSchema($schema); $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query', 'peerstub', 'querystub')); $builder->build(); }
public function setUp() { parent::setUp(); if (!class_exists('PhpNameTest\\Page')) { $schema = <<<XML <database name="php_name_test" namespace="PhpNameTest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.propelorm.org/1.6/database.xsd"> <table name="php_name_test_page" phpName="Page"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="title" type="VARCHAR" size="100" primaryString="true" /> </table> <table name="php_name_test_author" phpName="Author"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" size="100" primaryString="true" /> </table> <table name="php_name_test_author_page" phpName="AuthorPage" isCrossRef="true"> <column name="author_id" required="true" primaryKey="true" autoIncrement="false" type="INTEGER" /> <column name="page_id" required="true" primaryKey="true" autoIncrement="false" type="INTEGER" /> <foreign-key foreignTable="php_name_test_author"> <reference local="author_id" foreign="id" /> </foreign-key> <foreign-key foreignTable="php_name_test_page" refPhpName="Writer"> <reference local="page_id" foreign="id" /> </foreign-key> </table> </database> XML; $builder = new PropelQuickBuilder(); $builder->setSchema($schema); $builder->build(); } // Clear existing data, if any. \PhpNameTest\PagePeer::doDeleteAll(); \PhpNameTest\AuthorPeer::doDeleteAll(); \PhpNameTest\AuthorPagePeer::doDeleteAll(); }
public function setUp() { if (!class_exists('Foo')) { $schema = <<<EOF <database name="hstore_behavior" defaultIdMethod="native"> <table name="foo"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" required="true" /> <column name="property" type="VARCHAR" required="true" /> <behavior name="postgres_hstore"> <parameter name="column_name" value="property" /> </behavior> </table> </database> EOF; $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.postgres_hstore.class', '../src/PostgresHstoreBehavior'); $builder->setConfig($config); $builder->setSchema($schema); $builder->build(); } }
/** * @return \PropelPDO */ protected function getMockPropelConnection() { if (!class_exists('Lexik\\Bundle\\TranslationBundle\\Propel\\om\\BaseFile')) { // classes are built in-memory. $builder = new \PropelQuickBuilder(); $builder->setSchema(file_get_contents(__DIR__ . '/../../Resources/config/propel/schema.xml')); $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query')); $con = $builder->build(); } else { // in memory-classes already exist, create connection and SQL manually $dsn = 'sqlite::memory:'; $adapter = new \DBSQLite(); $con = new \PropelPDO($dsn, null, null); $con->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_WARNING); $name = 'default'; if (!\Propel::isInit()) { \Propel::setConfiguration(array('datasources' => array('default' => $name))); } \Propel::setDB($name, $adapter); \Propel::setConnection($name, $con, \Propel::CONNECTION_READ); \Propel::setConnection($name, $con, \Propel::CONNECTION_WRITE); // don't rebuild classes $builder = new \PropelQuickBuilder(); $builder->setSchema(file_get_contents(__DIR__ . '/../../Resources/config/propel/schema.xml')); $builder->buildSQL($con); } return $con; }
<?php /* * This file is part of the FOSUserBundle package. * * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ if (!($loader = @(include __DIR__ . '/../vendor/autoload.php'))) { echo <<<EOT You need to install the project dependencies using Composer: \$ wget http://getcomposer.org/composer.phar OR \$ curl -s https://getcomposer.org/installer | php \$ php composer.phar install --dev \$ phpunit EOT; exit(1); } if (class_exists('Propel')) { set_include_path(__DIR__ . '/../vendor/phing/phing/classes' . PATH_SEPARATOR . get_include_path()); $class = new \ReflectionClass('TypehintableBehavior'); $builder = new \PropelQuickBuilder(); $builder->getConfig()->setBuildProperty('behavior.typehintable.class', $class->getFileName()); $builder->setSchema(file_get_contents(__DIR__ . '/../Resources/config/propel/schema.xml')); $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query')); $builder->build(); }
public function testDisableUpdatedAt() { $schema = <<<EOF <database name="timestampable_database"> <table name="table_without_updated_at"> <column name="id" type="INTEGER" primaryKey="true" /> <behavior name="timestampable"> <parameter name="disable_updated_at" value="true" /> </behavior> </table> </database> EOF; $builder = new PropelQuickBuilder(); $builder->setSchema($schema); $builder->build(); $this->assertTrue(method_exists('TableWithoutUpdatedAt', 'getCreatedAt')); $this->assertTrue(method_exists('TableWithoutUpdatedAt', 'setCreatedAt')); $this->assertFalse(method_exists('TableWithoutUpdatedAt', 'getUpdatedAt')); $this->assertFalse(method_exists('TableWithoutUpdatedAt', 'setUpdatedAt')); $obj = new TableWithoutUpdatedAt(); $this->assertNull($obj->getCreatedAt()); $this->assertEquals(1, $obj->save()); $this->assertNotNull($obj->getCreatedAt()); }
public function setUp() { if (!class_exists('GeocodedObject')) { $schema = <<<EOF <database name="bookstore" defaultIdMethod="native"> <table name="simple_geocoded_object"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <behavior name="geocodable" /> </table> <table name="geocoded_object"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" size="100" primaryString="true" /> <column name="street" type="VARCHAR" size="100" primaryString="true" /> <column name="city" type="VARCHAR" size="100" primaryString="true" /> <column name="country" type="VARCHAR" size="100" primaryString="true" /> <behavior name="geocodable"> <!-- IP --> <parameter name="geocode_ip" value="true" /> <!-- Address --> <parameter name="geocode_address" value="true" /> <parameter name="address_columns" value="street, city, country" /> <!-- Geocoder --> <parameter name="geocoder_api_key" value="YOUR_API_KEY" /> </behavior> </table> <table name="geocoded_object_no_autoupdate"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" size="100" primaryString="true" /> <column name="street" type="VARCHAR" size="100" primaryString="true" /> <column name="city" type="VARCHAR" size="100" primaryString="true" /> <column name="country" type="VARCHAR" size="100" primaryString="true" /> <behavior name="geocodable"> <parameter name="auto_update" value="false" /> <!-- IP --> <parameter name="geocode_ip" value="true" /> <!-- Address --> <parameter name="geocode_address" value="true" /> <parameter name="address_columns" value="street, city, country" /> <!-- Geocoder --> <parameter name="geocoder_api_key" value="YOUR_API_KEY" /> </behavior> </table> <table name="geocoded_object_key_provider"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" size="100" primaryString="true" /> <column name="street" type="VARCHAR" size="100" primaryString="true" /> <column name="city" type="VARCHAR" size="100" primaryString="true" /> <column name="country" type="VARCHAR" size="100" primaryString="true" /> <behavior name="geocodable"> <!-- IP --> <parameter name="geocode_ip" value="true" /> <!-- Address --> <parameter name="geocode_address" value="true" /> <parameter name="address_columns" value="street, city, country" /> <!-- Geocoder --> <parameter name="geocoder_api_key_provider" value="GeoApikeyProvider" /> </behavior> </table> <table name="geocoded_object_key_provider_static"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" size="100" primaryString="true" /> <column name="street" type="VARCHAR" size="100" primaryString="true" /> <column name="city" type="VARCHAR" size="100" primaryString="true" /> <column name="country" type="VARCHAR" size="100" primaryString="true" /> <behavior name="geocodable"> <!-- IP --> <parameter name="geocode_ip" value="true" /> <!-- Address --> <parameter name="geocode_address" value="true" /> <parameter name="address_columns" value="street, city, country" /> <!-- Geocoder --> <parameter name="geocoder_api_key_provider" value="GeoApikeyProvider::getKey()" /> </behavior> </table> <table name="geocoded_object_key_provider_method"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="name" type="VARCHAR" size="100" primaryString="true" /> <column name="street" type="VARCHAR" size="100" primaryString="true" /> <column name="city" type="VARCHAR" size="100" primaryString="true" /> <column name="country" type="VARCHAR" size="100" primaryString="true" /> <behavior name="geocodable"> <!-- IP --> <parameter name="geocode_ip" value="true" /> <!-- Address --> <parameter name="geocode_address" value="true" /> <parameter name="address_columns" value="street, city, country" /> <!-- Geocoder --> <parameter name="geocoder_api_key_provider" value="GeoApikeyProvider->getApiKeyMethod()" /> </behavior> </table> </database> EOF; $builder = new PropelQuickBuilder(); $config = $builder->getConfig(); $config->setBuildProperty('behavior.geocodable.class', '../src/GeocodableBehavior'); $builder->setConfig($config); $builder->setSchema($schema); $con = $builder->build(); $con->sqliteCreateFunction('ACOS', 'acos', 1); $con->sqliteCreateFunction('COS', 'cos', 1); $con->sqliteCreateFunction('RADIANS', 'deg2rad', 1); $con->sqliteCreateFunction('SIN', 'sin', 1); } }
public function setUp() { if (!class_exists('ArchivableTest1')) { $schema = <<<EOF <database name="archivable_behavior_test_0"> \t<table name="archivable_test_1"> \t\t<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> \t\t<column name="title" type="VARCHAR" size="100" primaryString="true" /> \t\t<column name="age" type="INTEGER" /> \t\t<column name="foo_id" type="INTEGER" /> \t\t<foreign-key foreignTable="archivable_test_2"> \t\t\t<reference local="foo_id" foreign="id" /> \t\t</foreign-key> \t\t<index> \t\t\t<index-column name="title" /> \t\t\t<index-column name="age" /> \t\t</index> \t\t<behavior name="archivable" /> \t</table> \t<table name="archivable_test_2"> \t\t<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> \t\t<column name="title" type="VARCHAR" size="100" primaryString="true" /> \t\t<behavior name="archivable" /> \t</table> \t<table name="archivable_test_2_archive"> \t\t<column name="id" required="true" primaryKey="true" type="INTEGER" /> \t\t<column name="title" type="VARCHAR" size="100" primaryString="true" /> \t</table> \t<table name="archivable_test_3"> \t\t<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> \t\t<column name="title" type="VARCHAR" size="100" primaryString="true" /> \t\t<column name="age" type="INTEGER" /> \t\t<column name="foo_id" type="INTEGER" /> \t\t<behavior name="archivable"> \t\t\t<parameter name="log_archived_at" value="false" /> \t\t\t<parameter name="archive_table" value="my_old_archivable_test_3" /> \t\t\t<parameter name="archive_on_insert" value="true" /> \t\t\t<parameter name="archive_on_update" value="true" /> \t\t\t<parameter name="archive_on_delete" value="false" /> \t\t</behavior> \t</table> \t<table name="archivable_test_4"> \t\t<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> \t\t<column name="title" type="VARCHAR" size="100" primaryString="true" /> \t\t<column name="age" type="INTEGER" /> \t\t<behavior name="archivable"> \t\t\t<parameter name="archive_class" value="FooArchive" /> \t\t</behavior> \t</table> </database> EOF; $builder = new PropelQuickBuilder(); $builder->setSchema($schema); self::$generatedSQL = $builder->getSQL(); $builder->build(); } }
protected function loadFixtures() { $this->loadPropelQuickBuilder(); $schema = <<<XML <database name="default" package="vendor.bundles.Propel.PropelBundle.Tests.Request.DataFixtures.Loader" namespace="Propel\\PropelBundle\\Tests\\Request\\ParamConverter" defaultIdMethod="native"> <table name="my_book"> <column name="id" type="integer" primaryKey="true" /> <column name="name" type="varchar" size="255" /> <column name="my_author_id" type="integer" required="true" /> <foreign-key foreignTable="my_author" onDelete="CASCADE" onUpdate="CASCADE"> <reference local="my_author_id" foreign="id" /> </foreign-key> </table> <table name="my_author"> <column name="id" type="integer" primaryKey="true" /> <column name="name" type="varchar" size="255" /> </table> </database> XML; $builder = new \PropelQuickBuilder(); $builder->setSchema($schema); if (class_exists('Propel\\PropelBundle\\Tests\\Request\\ParamConverter\\MyAuthor')) { $builder->setClassTargets(array()); } $this->con = $builder->build(); $this->con->useDebug(true); MyBookQuery::create()->deleteAll($this->con); MyAuthorQuery::create()->deleteAll($this->con); $author = new MyAuthor(); $author->setId(10); $author->setName('Will'); $book = new MyBook(); $book->setId(1); $book->setName('PropelBook'); $book->setMyAuthor($author); $book2 = new MyBook(); $book2->setId(2); $book2->setName('sf2lBook'); $book2->setMyAuthor($author); $author->save($this->con); }
public function testHydrateOverwritePreviousValues() { $schema = <<<EOF <database name="generated_object_complex_type_test_with_constructor"> <table name="complex_column_type_entity_with_constructor"> <column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" /> <column name="tags" type="ARRAY" /> </table> </database> EOF; $builder = new PropelQuickBuilder(); $builder->setSchema($schema); $builder->setClassTargets(array('tablemap', 'peer', 'object', 'query', 'peerstub', 'querystub')); $builder->build(); require_once dirname(__FILE__) . '/fixtures/ComplexColumnTypeEntityWithConstructor.php'; Propel::disableInstancePooling(); // need to be disabled to test the hydrate() method $obj = new ComplexColumnTypeEntityWithConstructor(); $this->assertEquals(array('foo', 'bar'), $obj->getTags()); $obj->setTags(array('baz')); $this->assertEquals(array('baz'), $obj->getTags()); $obj->save(); $obj = ComplexColumnTypeEntityWithConstructorQuery::create()->findOne(); $this->assertEquals(array('baz'), $obj->getTags()); Propel::enableInstancePooling(); }
public function testLoadDelegatedOnPrimaryKey() { $schema = <<<XML <database name="default" package="vendor.bundles.Propel.PropelBundle.Tests.Fixtures.DataFixtures.Loader" namespace="Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader" defaultIdMethod="native"> <table name="yaml_delegate_on_primary_key_person" phpName="YamlDelegateOnPrimaryKeyPerson"> <column name="id" type="integer" primaryKey="true" autoIncrement="true" /> <column name="name" type="varchar" size="255" /> </table> <table name="yaml_delegate_on_primary_key_author" phpName="YamlDelegateOnPrimaryKeyAuthor"> <column name="id" type="integer" primaryKey="true" autoIncrement="false" /> <column name="count_books" type="integer" defaultValue="0" required="true" /> <behavior name="delegate"> <parameter name="to" value="yaml_delegate_on_primary_key_person" /> </behavior> <foreign-key foreignTable="yaml_delegate_on_primary_key_person" onDelete="RESTRICT" onUpdate="CASCADE"> <reference local="id" foreign="id" /> </foreign-key> </table> </database> XML; $fixtures = <<<YAML Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlDelegateOnPrimaryKeyPerson: yaml_delegate_on_primary_key_person_1: name: "Some Persons Name" Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlDelegateOnPrimaryKeyAuthor: yaml_delegate_on_primary_key_author_1: id: yaml_delegate_on_primary_key_person_1 count_books: 7 YAML; $filename = $this->getTempFile($fixtures); $builder = new \PropelQuickBuilder(); $builder->setSchema($schema); $con = $builder->build(); $loader = new YamlDataLoader(__DIR__ . '/../../Fixtures/DataFixtures/Loader'); $loader->load(array($filename), 'default'); $authors = \Propel\PropelBundle\Tests\Fixtures\DataFixtures\Loader\YamlDelegateOnPrimaryKeyAuthorPeer::doSelect(new \Criteria(), $con); $this->assertCount(1, $authors); $author = $authors[0]; $person = $author->getYamlDelegateOnPrimaryKeyPerson(); $this->assertInstanceOf('Propel\\PropelBundle\\Tests\\Fixtures\\DataFixtures\\Loader\\YamlDelegateOnPrimaryKeyPerson', $person); }
public function testBuild() { $schema = <<<EOF <database name="test_quick_build_2"> \t<table name="quick_build_foo_2"> \t\t<column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" /> \t\t<column name="bar" type="INTEGER" /> \t</table> </database> EOF; $builder = new PropelQuickBuilder(); $builder->setSchema($schema); $builder->build(); $this->assertEquals(0, QuickBuildFoo2Query::create()->count()); $foo = new QuickBuildFoo2(); $foo->setBar(3); $foo->save(); $this->assertEquals(1, QuickBuildFoo2Query::create()->count()); $this->assertEquals($foo, QuickBuildFoo2Query::create()->findOne()); }
/** * Setup schema und some default data */ public function setUp() { parent::setUp(); if (!class_exists('MoreRelationTest\\Page')) { $schema = <<<EOF <database name="more_relation_test" namespace="MoreRelationTest"> <table name="more_relation_test_page" phpName="Page"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="title" type="VARCHAR" size="100" primaryString="true" /> </table> <table name="more_relation_test_content" phpName="Content"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="title" type="VARCHAR" size="100" /> <column name="content" type="LONGVARCHAR" required="false" /> <column name="page_id" type="INTEGER" required="false" /> <foreign-key foreignTable="more_relation_test_page" onDelete="cascade"> <reference local="page_id" foreign="id"/> </foreign-key> </table> <table name="more_relation_test_comment" phpName="Comment"> <column name="user_id" required="true" primaryKey="true" type="INTEGER" /> <column name="page_id" required="true" primaryKey="true" type="INTEGER" /> <column name="comment" type="VARCHAR" size="100" /> <foreign-key foreignTable="more_relation_test_page" onDelete="restrict"> <reference local="page_id" foreign="id"/> </foreign-key> </table> <table name="more_relation_test_content_comment" phpName="ContentComment"> <column name="id" required="true" autoIncrement="true" primaryKey="true" type="INTEGER" /> <column name="content_id" type="INTEGER" /> <column name="comment" type="VARCHAR" size="100" /> <foreign-key foreignTable="more_relation_test_content" onDelete="setnull"> <reference local="content_id" foreign="id"/> </foreign-key> </table> </database> EOF; $builder = new PropelQuickBuilder(); $builder->setSchema($schema); $builder->build(); } \MoreRelationTest\ContentCommentPeer::doDeleteAll(); \MoreRelationTest\ContentPeer::doDeleteAll(); \MoreRelationTest\CommentPeer::doDeleteAll(); \MoreRelationTest\PagePeer::doDeleteAll(); for ($i = 1; $i <= 2; $i++) { $page = new \MoreRelationTest\Page(); $page->setTitle('Page ' . $i); for ($j = 1; $j <= 3; $j++) { $content = new \MoreRelationTest\Content(); $content->setTitle('Content ' . $j); $content->setContent(str_repeat('Content', $j)); $page->addContent($content); $comment = new \MoreRelationTest\Comment(); $comment->setUserId($j); $comment->setComment(str_repeat('Comment', $j)); $page->addComment($comment); $comment = new \MoreRelationTest\ContentComment(); $comment->setContentId($i * $j); $comment->setComment(str_repeat('Comment-' . $j . ', ', $j)); $content->addContentComment($comment); } $page->save(); } }