Пример #1
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="author_id" type="integer" required="false" defaultValue="null" />

        <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('peer', 'object', 'query', 'peerstub', 'objectstub', 'querystub'));
        } else {
            $builder->setClassTargets(array());
        }
        $this->con = $builder->build();
    }
Пример #2
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 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();
 }
Пример #4
0
 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()
    {
        $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 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();
    }
Пример #7
0
<?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();
}
 /**
  * @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;
 }
    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);
    }