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();
        }
    }
 protected function createBuilder()
 {
     $builder = new PropelQuickBuilder();
     $builder->setPlatform(new PgsqlPlatform());
     $builder->setSchema($this->getXMLSchema());
     return $builder;
 }
    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();
            }
        }
    }
Example #4
0
    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();
    }
Example #5
0
 protected function getBuilder($schema)
 {
     $builder = new PropelQuickBuilder();
     $config = $builder->getConfig();
     $config->setBuildProperty('behavior.equal_nest.class', '../src/EqualNestBehavior');
     $builder->setConfig($config);
     $builder->setSchema($schema);
     return $builder;
 }
    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();
 }
 protected function assertEmptyBuilderOutput($schema)
 {
     $builder = new PropelQuickBuilder();
     $builder->setSchema($schema);
     ob_start();
     $builder->buildClasses();
     $output = preg_replace('/[\\r\\n]/', '', ob_get_contents());
     ob_end_clean();
     $this->assertEquals('', $output);
 }
 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();
 }
Example #11
0
 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();
 }
    public function testIndex()
    {
        $updatedSchema = '
<database>
  <table name="notification">
    <column autoIncrement="true" name="id" primaryKey="true" required="true" type="INTEGER" />
    <column name="target_user_id" required="true" type="INTEGER" />
    <column name="notification_type_unique_name" required="true" size="255" type="VARCHAR" />
    <column name="group_id" type="INTEGER" />
    <column name="date" required="true" type="TIMESTAMP" />
    <column name="objects" type="LONGVARCHAR" />
    <column name="is_new" defaultValue="1" required="true" type="BOOLEAN" />
    <foreign-key foreignTable="notification_type" name="FK_NOTIFICATION_TYPENOTIFICATION0">
      <reference foreign="unique_name" local="notification_type_unique_name" />
    </foreign-key>
    <index name="FK_NOTIFICATION_TARGET_USER">
      <index-column name="target_user_id" />
    </index>
    <index name="FK_NOTIFICATION_TYPENOTIFICATION">
      <index-column name="notification_type_unique_name" />
    </index>
  </table>
  <table name="notification_type">
    <column name="module_unique_name" primaryKey="true" required="true" size="255" type="VARCHAR" />
    <column name="unique_name" primaryKey="true" required="true" size="255" type="VARCHAR" />
    <column name="is_correction" defaultValue="0" required="true" type="BOOLEAN" />
    <column name="disabled_engine" size="255" type="VARCHAR" />
    <foreign-key foreignTable="module" name="FK_TYPENOTIFICATION_MODULE0" onDelete="CASCADE" onUpdate="CASCADE">
      <reference foreign="unique_name" local="module_unique_name" />
    </foreign-key>
    <index name="FK_TYPENOTIFICATION_MODULE">
      <index-column name="module_unique_name" />
    </index>
  </table>
  <table name="module">
    <column autoIncrement="true" name="id" primaryKey="true" required="true" type="INTEGER" />
    <column name="unique_name" required="true" size="255" type="VARCHAR" />
    <column name="label" primaryString="true" required="true" size="255" type="VARCHAR" />
    <column name="description" required="true" size="255" type="VARCHAR" />
  </table>
</database>
';
        $actual = "\n# This is a fix for InnoDB in MySQL >= 4.1.x\n# It \"suspends judgement\" for fkey relationships until are tables are set.\nSET FOREIGN_KEY_CHECKS = 0;\n\n-- ---------------------------------------------------------------------\n-- notification\n-- ---------------------------------------------------------------------\n\nDROP TABLE IF EXISTS `notification`;\n\nCREATE TABLE `notification`\n(\n    `id` INTEGER NOT NULL AUTO_INCREMENT,\n    `target_user_id` INTEGER NOT NULL,\n    `notification_type_unique_name` VARCHAR(255) NOT NULL,\n    `group_id` INTEGER,\n    `date` DATETIME NOT NULL,\n    `objects` TEXT,\n    `is_new` TINYINT(1) DEFAULT 1 NOT NULL,\n    PRIMARY KEY (`id`),\n    INDEX `FK_NOTIFICATION_TARGET_USER` (`target_user_id`),\n    INDEX `FK_NOTIFICATION_TYPENOTIFICATION` (`notification_type_unique_name`),\n    CONSTRAINT `FK_NOTIFICATION_TYPENOTIFICATION0`\n        FOREIGN KEY (`notification_type_unique_name`)\n        REFERENCES `notification_type` (`unique_name`)\n) ENGINE=InnoDb;\n\n-- ---------------------------------------------------------------------\n-- notification_type\n-- ---------------------------------------------------------------------\n\nDROP TABLE IF EXISTS `notification_type`;\n\nCREATE TABLE `notification_type`\n(\n    `module_unique_name` VARCHAR(255) NOT NULL,\n    `unique_name` VARCHAR(255) NOT NULL,\n    `is_correction` TINYINT(1) DEFAULT 0 NOT NULL,\n    `disabled_engine` VARCHAR(255),\n    PRIMARY KEY (`module_unique_name`,`unique_name`),\n    INDEX `FK_TYPENOTIFICATION_MODULE` (`module_unique_name`),\n    INDEX `I_referenced_FK_NOTIFICATION_TYPENOTIFICATION0_1` (`unique_name`),\n    CONSTRAINT `FK_TYPENOTIFICATION_MODULE0`\n        FOREIGN KEY (`module_unique_name`)\n        REFERENCES `module` (`unique_name`)\n        ON UPDATE CASCADE\n        ON DELETE CASCADE\n) ENGINE=InnoDb;\n\n-- ---------------------------------------------------------------------\n-- module\n-- ---------------------------------------------------------------------\n\nDROP TABLE IF EXISTS `module`;\n\nCREATE TABLE `module`\n(\n    `id` INTEGER NOT NULL AUTO_INCREMENT,\n    `unique_name` VARCHAR(255) NOT NULL,\n    `label` VARCHAR(255) NOT NULL,\n    `description` VARCHAR(255) NOT NULL,\n    PRIMARY KEY (`id`)\n) ENGINE=InnoDb;\n\n# This restores the fkey checks, after having unset them earlier\nSET FOREIGN_KEY_CHECKS = 1;\n";
        $platform = new MysqlPlatform();
        $platform->setDefaultTableEngine('InnoDb');
        $updatedBuilder = new PropelQuickBuilder();
        $updatedBuilder->setPlatform($platform);
        $updatedBuilder->setSchema($updatedSchema);
        $sql = $updatedBuilder->getSQL();
        $this->assertEquals($actual, $sql);
    }
    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('I18nBehaviorTest11')) {
            $schema = <<<EOF
<database name="i18n_behavior_test_10">
\t<table name="i18n_behavior_test_11">
\t\t<column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
\t\t<column name="foo" type="INTEGER" />
\t\t<column name="bar" type="VARCHAR" size="100" />
\t\t<behavior name="i18n">
\t\t\t<parameter name="i18n_columns" value="bar" />
\t\t</behavior>
\t</table>
\t<table name="i18n_behavior_test_12">
\t\t<column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
\t\t<column name="foo" type="INTEGER" />
\t\t<column name="bar1" type="VARCHAR" size="100" />
\t\t<column name="bar2" type="LONGVARCHAR" lazyLoad="true" />
\t\t<column name="bar3" type="TIMESTAMP" />
\t\t<column name="bar4" type="LONGVARCHAR" description="This is the Bar4 column" />
\t\t<behavior name="i18n">
\t\t\t<parameter name="i18n_columns" value="bar1,bar2,bar3,bar4" />
\t\t\t<parameter name="default_locale" value="fr_FR" />
\t\t\t<parameter name="locale_alias" value="culture" />
\t\t</behavior>
\t</table>
</database>
EOF;
            //PropelQuickBuilder::debugClassesForTable($schema, 'i18n_behavior_test_11');
            PropelQuickBuilder::buildSchema($schema);
        }
    }
    public function setUp()
    {
        $this->c1 = new FooColumnValue2();
        $this->c1->bar = 1234;
        $this->c2 = new FooColumnValue2();
        $this->c2->bar = 5678;
        if (!class_exists('ComplexColumnTypeEntity10')) {
            $schema = <<<EOF
<database name="generated_query_complex_type_test_10">
\t<table name="complex_column_type_entity_10">
\t\t<column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
\t\t<column name="bar" type="OBJECT" />
\t</table>
</database>
EOF;
            PropelQuickBuilder::buildSchema($schema);
            $e0 = new ComplexColumnTypeEntity10();
            $e0->save();
            $e1 = new ComplexColumnTypeEntity10();
            $e1->setBar($this->c1);
            $e1->save();
            $e2 = new ComplexColumnTypeEntity10();
            $e2->setBar($this->c2);
            $e2->save();
            ComplexColumnTypeEntity10Peer::clearInstancePool();
        }
    }
    public function testObjectColumnType()
    {
        $schema = <<<EOF
<database name="generated_object_complex_type_test_1">
\t<table name="complex_column_type_entity_1">
\t\t<column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
\t\t<column name="bar" type="OBJECT" />
\t</table>
</database>
EOF;
        PropelQuickBuilder::buildSchema($schema);
        $e = new ComplexColumnTypeEntity1();
        $this->assertNull($e->getBar(), 'object columns are null by default');
        $c = new FooColumnValue();
        $c->bar = 1234;
        $e->setBar($c);
        $this->assertEquals($c, $e->getBar(), 'object columns can store objects');
        $e->setBar(null);
        $this->assertNull($e->getBar(), 'object columns are nullable');
        $e->setBar($c);
        $e->save();
        ComplexColumnTypeEntity1Peer::clearInstancePool();
        $e = ComplexColumnTypeEntity1Query::create()->findOne();
        $this->assertEquals($c, $e->getBar(), 'object columns are persisted');
    }
    public function setUp()
    {
        if (!class_exists('ArchivableTest10')) {
            $schema = <<<EOF
<database name="archivable_behavior_test_10">

\t<table name="archivable_test_10">
\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_20">
\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_20">
\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_20_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_30">
\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_30" />
\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_40">
\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;
            PropelQuickBuilder::buildSchema($schema);
        }
    }
    public function setUp()
    {
        if (!class_exists('ComplexColumnTypeEntity11')) {
            $schema = <<<EOF
<database name="generated_object_complex_type_test_11">
    <table name="complex_column_type_entity_11">
        <column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
        <column name="tags" type="ARRAY" />
        <column name="value_set" type="ARRAY" />
    </table>
</database>
EOF;
            PropelQuickBuilder::buildSchema($schema);
            $e0 = new ComplexColumnTypeEntity11();
            $e0->save();
            $e1 = new ComplexColumnTypeEntity11();
            $e1->setTags(array('foo', 'bar', 'baz'));
            $e1->save();
            $e2 = new ComplexColumnTypeEntity11();
            $e2->setTags(array('bar'));
            $e2->save();
            $e3 = new ComplexColumnTypeEntity11();
            $e3->setTags(array('bar23'));
            $e3->save();
        }
    }
    public function setUp()
    {
        parent::setUp();
        if (!class_exists('ConcreteContentSetPkQuery')) {
            $schema = <<<EOF
<database name="concrete_content_set_pk">
    <table name="concrete_content_set_pk" allowPkInsert="true">
        <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" />
        <column name="title" type="VARCHAR" size="100" primaryString="true" />
        <index>
            <index-column name="title" />
        </index>

    </table>
    <table name="concrete_article_set_pk" allowPkInsert="true">
        <column name="body" type="longvarchar" />
        <column name="author_id" required="false" type="INTEGER" />
        <behavior name="concrete_inheritance">
            <parameter name="extends" value="concrete_content_set_pk" />
        </behavior>
    </table>
</database>
EOF;
            PropelQuickBuilder::buildSchema($schema);
        }
    }
    public function setUp()
    {
        if (!class_exists('Foo\\MyClassWithInterface')) {
            $schema = <<<EOF
<database name="a-database" namespace="Foo">
\t<table name="my_class_with_interface" interface="MyInterface">
\t\t<column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" />
\t\t<column name="name" type="VARCHAR" />
\t</table>
</database>
EOF;
            $builder = new PropelQuickBuilder();
            $builder->setSchema($schema);
            $builder->buildClasses();
        }
    }
    public function setUp()
    {
        if (!class_exists('ArchivableConcretePagePeer')) {
            $schema = <<<EOF
<database name="archivable_concrete_behavior_test_0">

  <table name="parent_archivable_concrete_page">
    <column name="id" type="integer" primaryKey="true" autoIncrement="true"/>
    <column name="content" type="longvarchar" required="true" />
    <behavior name="archivable" />
  </table>

  <table name="archivable_concrete_page">
    <column name="paragraph" type="integer" required="true" />
    <behavior name="concrete_inheritance">
      <parameter name="extends" value="parent_archivable_concrete_page" />
    </behavior>
    <behavior name="archivable" />
  </table>
</database>
EOF;
            PropelQuickBuilder::buildSchema($schema);
        }
        ArchivableConcretePagePeer::doDeleteAll();
        ArchivableConcretePageArchivePeer::doDeleteAll();
    }
    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();
        }
    }
Example #23
0
 private function checkDeletedFk()
 {
     $this->readDatabase();
     $diff = DatabaseComparator::computeDiff($this->database, $this->updatedBuilder->getDatabase());
     $sql = $this->database->getPlatform()->getModifyDatabaseDDL($diff);
     $expected = 'issue617_user';
     $this->assertNotContains($expected, $sql);
 }
    public function testValidateReturnsTrueForValidSchema()
    {
        $schema = <<<EOF
<database name="bookstore">
\t<table name="book">
\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</table>
</database>
EOF;
        $builder = new PropelQuickBuilder();
        $builder->setSchema($schema);
        $database = $builder->getDatabase();
        $appData = new AppData();
        $appData->addDatabase($database);
        $validator = new PropelSchemaValidator($appData);
        $this->assertTrue($validator->validate());
    }
    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('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('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('I18nBehaviorTest1')) {
            $schema = <<<EOF
<database name="i18n_behavior_test_1">
\t<table name="i18n_behavior_test_1">
\t\t<column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
\t\t<column name="foo" type="INTEGER" />
\t\t<column name="bar" type="VARCHAR" size="100" />
\t\t<behavior name="i18n">
\t\t\t<parameter name="i18n_columns" value="bar" />
\t\t</behavior>
\t</table>
\t<table name="i18n_behavior_test_2">
\t\t<column name="id" primaryKey="true" type="INTEGER" autoIncrement="true" />
\t\t<column name="foo" type="INTEGER" />
\t\t<column name="bar1" type="VARCHAR" size="100" />
\t\t<column name="bar2" type="LONGVARCHAR" lazyLoad="true" />
\t\t<column name="bar3" type="TIMESTAMP" />
\t\t<column name="bar4" type="LONGVARCHAR" description="This is the Bar4 column" />
\t\t<behavior name="i18n">
\t\t\t<parameter name="i18n_columns" value="bar1,bar2,bar3,bar4" />
\t\t\t<parameter name="default_locale" value="fr_FR" />
\t\t\t<parameter name="locale_alias" value="culture" />
\t\t</behavior>
\t</table>

\t<table name="movie">
\t\t<column name="id" type="integer" required="true" primaryKey="true" autoincrement="true" />
\t\t<column name="director" type="varchar" size="255" />
\t\t<column name="title" type="varchar" primaryString="true" />
\t\t<behavior name="i18n">
\t\t\t<parameter name="i18n_columns" value="title" />
\t\t\t<parameter name="locale_alias" value="culture" />
\t\t</behavior>
\t</table>
\t<table name="toy">
\t\t<column name="id" type="integer" required="true" primaryKey="true" autoincrement="true" />
\t\t<column name="ref" type="varchar" size="255" />
\t\t<column name="name" type="varchar" size="255" />
\t\t<behavior name="i18n">
\t\t\t<parameter name="i18n_columns" value="name" />
\t\t\t<parameter name="locale_alias" value="culture" />
\t\t</behavior>
\t\t<column name="movie_id" type="integer" />
\t\t<foreign-key foreignTable="movie">
\t\t\t<reference local="movie_id" foreign="id" />
\t\t</foreign-key>
\t</table>
</database>
EOF;
            PropelQuickBuilder::buildSchema($schema);
        }
    }
    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()
    {
        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();
        }
    }