[2.0] Added EntityRepositoryTest. Updated build file and XML Schema for mapping files.
This commit is contained in:
parent
7152da322f
commit
e161103e4b
@ -1,4 +1,4 @@
|
||||
version=2.0
|
||||
version=2.0-alpha1
|
||||
build.dir=build
|
||||
dist.dir=dist
|
||||
report.dir=reports
|
16
build.xml
16
build.xml
@ -4,7 +4,7 @@
|
||||
Doctrine 2 build file.
|
||||
-->
|
||||
|
||||
<project name="Doctrine2" default="dist-all" basedir=".">
|
||||
<project name="Doctrine2" default="dist-orm" basedir=".">
|
||||
|
||||
<property file="build.properties" />
|
||||
|
||||
@ -71,8 +71,8 @@
|
||||
<!--
|
||||
Builds all packages, preparing them for distribution.
|
||||
-->
|
||||
<target name="build-all" depends="prepare, build-common, build-dbal">
|
||||
<copy todir="${build.dir}/all">
|
||||
<target name="build-orm" depends="prepare, build-common, build-dbal">
|
||||
<copy todir="${build.dir}/orm">
|
||||
<fileset refid="shared-artifacts"/>
|
||||
<fileset refid="common-sources"/>
|
||||
<fileset refid="dbal-sources"/>
|
||||
@ -104,7 +104,7 @@
|
||||
Distributes the Doctrine Common package.
|
||||
-->
|
||||
<target name="dist-common">
|
||||
<tar destfile="${dist.dir}/Doctrine2-common.tar.gz" compression="gzip">
|
||||
<tar destfile="${dist.dir}/Doctrine-${version}-common.tar.gz" compression="gzip">
|
||||
<fileset dir="${build.dir}/common">
|
||||
<include name="**" />
|
||||
</fileset>
|
||||
@ -115,7 +115,7 @@
|
||||
Distributes the Doctrine DBAL package.
|
||||
-->
|
||||
<target name="dist-dbal">
|
||||
<tar destfile="${dist.dir}/Doctrine2-dbal.tar.gz" compression="gzip">
|
||||
<tar destfile="${dist.dir}/Doctrine-${version}-dbal.tar.gz" compression="gzip">
|
||||
<fileset dir="${build.dir}/dbal">
|
||||
<include name="**" />
|
||||
</fileset>
|
||||
@ -126,9 +126,9 @@
|
||||
DEFAULT TARGET
|
||||
Tests, builds and distributes the full Doctrine package (Common+DBAL+ORM).
|
||||
-->
|
||||
<target name="dist-all" depends="test, build-all, dist-common, dist-dbal">
|
||||
<tar destfile="${dist.dir}/Doctrine2-all.tar.gz" compression="gzip">
|
||||
<fileset dir="${build.dir}/all">
|
||||
<target name="dist-orm" depends="test, build-orm, dist-common, dist-dbal">
|
||||
<tar destfile="${dist.dir}/Doctrine-${version}-orm.tar.gz" compression="gzip">
|
||||
<fileset dir="${build.dir}/orm">
|
||||
<include name="**" />
|
||||
</fileset>
|
||||
</tar>
|
||||
|
@ -15,7 +15,8 @@
|
||||
<xs:element name="doctrine-mapping">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="entity" type="orm:entity" />
|
||||
<xs:element name="mapped-superclass" type="orm:mapped-superclass" minOccurs="0" />
|
||||
<xs:element name="entity" type="orm:entity" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
@ -31,9 +32,35 @@
|
||||
<xs:element name="cascade-refresh" type="orm:emptyType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="lifecycle-callback-type">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="prePersist"/>
|
||||
<xs:enumeration value="postPersist"/>
|
||||
<xs:enumeration value="preUpdate"/>
|
||||
<xs:enumeration value="postUpdate"/>
|
||||
<xs:enumeration value="preRemove"/>
|
||||
<xs:enumeration value="postRemove"/>
|
||||
<xs:enumeration value="postLoad"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="lifecycle-callback">
|
||||
<xs:attribute name="type" type="orm:lifecycle-callback-type" use="required" />
|
||||
<xs:attribute name="method" type="xs:NMTOKEN" use="required" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="lifecycle-callbacks">
|
||||
<xs:sequence>
|
||||
<xs:element name="lifecycle-callback" type="orm:lifecycle-callback" minOccurs="1" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="entity">
|
||||
<xs:sequence>
|
||||
<xs:element name="discriminator-column" type="orm:discriminator-column" minOccurs="0"/>
|
||||
<xs:element name="subclasses" type="xs:NMTOKENS" minOccurs="0"/>
|
||||
<xs:element name="lifecycle-callbacks" type="orm:lifecycle-callbacks" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="id" type="orm:id" />
|
||||
<xs:element name="field" type="orm:field" minOccurs="0" />
|
||||
<xs:element name="one-to-one" type="orm:one-to-one" minOccurs="0"/>
|
||||
@ -43,17 +70,15 @@
|
||||
<xs:attribute name="name" type="xs:string" use="required" />
|
||||
<xs:attribute name="table" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="schema" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="repository-class" type="xs:NMTOKEN"/>
|
||||
<xs:attribute name="inheritance-type" type="orm:inheritance-type"/>
|
||||
<xs:attribute name="discriminator-value" type="xs:NMTOKEN"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="mapped-superclass">
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="orm:id" minOccurs="0" />
|
||||
<xs:element name="field" type="orm:field" minOccurs="0" />
|
||||
<xs:element name="one-to-many" type="orm:one-to-many" minOccurs="0" />
|
||||
<xs:element name="many-to-many" type="orm:many-to-many" minOccurs="0" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
||||
<xs:complexType name="mapped-superclass" >
|
||||
<xs:complexContent>
|
||||
<xs:extension base="orm:entity"/>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="inheritance-type">
|
||||
@ -71,6 +96,14 @@
|
||||
<xs:enumeration value="IDENTITY"/>
|
||||
<xs:enumeration value="AUTO"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="fk-action">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="CASCADE"/>
|
||||
<xs:enumeration value="RESTRICT"/>
|
||||
<xs:enumeration value="SET_NULL"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="field">
|
||||
@ -78,6 +111,16 @@
|
||||
<xs:attribute name="type" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="column" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="length" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="unique" type="xs:boolean" default="false" />
|
||||
<xs:attribute name="nullable" type="xs:boolean" default="false" />
|
||||
<xs:attribute name="version" type="xs:boolean" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="discriminator-column">
|
||||
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="type" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="field-name" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="length" type="xs:NMTOKEN" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="generator">
|
||||
@ -102,6 +145,10 @@
|
||||
<xs:complexType name="join-column">
|
||||
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="referencedColumnName" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="unique" type="xs:boolean" default="false" />
|
||||
<xs:attribute name="nullable" type="xs:boolean" default="true" />
|
||||
<xs:attribute name="on-delete" type="orm:fk-action" />
|
||||
<xs:attribute name="on-update" type="orm:fk-action" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="join-columns">
|
||||
@ -116,6 +163,7 @@
|
||||
<xs:element name="inverse-join-columns" type="orm:join-columns" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="schema" type="xs:NMTOKEN" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="many-to-many">
|
||||
@ -134,6 +182,7 @@
|
||||
<xs:attribute name="targetEntity" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="mappedBy" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="field" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="one-to-one">
|
||||
@ -147,6 +196,7 @@
|
||||
<xs:attribute name="targetEntity" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="mappedBy" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="field" type="xs:NMTOKEN" use="required" />
|
||||
<xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
|
||||
</xs:complexType>
|
||||
|
||||
</xs:schema>
|
@ -39,6 +39,7 @@ class AllTests
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\LifecycleCallbackTest');
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\StandardEntityPersisterTest');
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\MappedSuperclassTest');
|
||||
$suite->addTestSuite('Doctrine\Tests\ORM\Functional\EntityRepositoryTest');
|
||||
|
||||
$suite->addTest(Locking\AllTests::suite());
|
||||
|
||||
|
70
tests/Doctrine/Tests/ORM/Functional/EntityRepositoryTest.php
Normal file
70
tests/Doctrine/Tests/ORM/Functional/EntityRepositoryTest.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Tests\ORM\Functional;
|
||||
|
||||
use Doctrine\Tests\Models\CMS\CmsUser;
|
||||
use Doctrine\Tests\Models\CMS\CmsPhonenumber;
|
||||
|
||||
require_once __DIR__ . '/../../TestInit.php';
|
||||
|
||||
/**
|
||||
* Description of DetachedEntityTest
|
||||
*
|
||||
* @author robo
|
||||
*/
|
||||
class EntityRepositoryTest extends \Doctrine\Tests\OrmFunctionalTestCase
|
||||
{
|
||||
protected function setUp() {
|
||||
$this->useModelSet('cms');
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
public function testBasicFinders() {
|
||||
$user = new CmsUser;
|
||||
$user->name = 'Roman';
|
||||
$user->username = 'romanb';
|
||||
$user->status = 'freak';
|
||||
$this->_em->persist($user);
|
||||
|
||||
$user2 = new CmsUser;
|
||||
$user2->name = 'Guilherme';
|
||||
$user2->username = 'gblanco';
|
||||
$user2->status = 'dev';
|
||||
$this->_em->persist($user2);
|
||||
|
||||
$this->_em->flush();
|
||||
$user1Id = $user->getId();
|
||||
unset($user);
|
||||
unset($user2);
|
||||
$this->_em->clear();
|
||||
|
||||
$repos = $this->_em->getRepository('Doctrine\Tests\Models\CMS\CmsUser');
|
||||
|
||||
$user = $repos->find($user1Id);
|
||||
$this->assertTrue($user instanceof CmsUser);
|
||||
$this->assertEquals('Roman', $user->name);
|
||||
$this->assertEquals('freak', $user->status);
|
||||
|
||||
$this->_em->clear();
|
||||
|
||||
$users = $repos->findBy(array('status' => 'dev'));
|
||||
$this->assertEquals(1, count($users));
|
||||
$this->assertTrue($users[0] instanceof CmsUser);
|
||||
$this->assertEquals('Guilherme', $users[0]->name);
|
||||
$this->assertEquals('dev', $users[0]->status);
|
||||
|
||||
$this->_em->clear();
|
||||
|
||||
$users = $repos->findByStatus('dev');
|
||||
$this->assertEquals(1, count($users));
|
||||
$this->assertTrue($users[0] instanceof CmsUser);
|
||||
$this->assertEquals('Guilherme', $users[0]->name);
|
||||
$this->assertEquals('dev', $users[0]->status);
|
||||
|
||||
$this->_em->clear();
|
||||
|
||||
$users = $repos->findAll();
|
||||
$this->assertEquals(2, count($users));
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,10 @@
|
||||
|
||||
<entity name="Doctrine\Tests\ORM\Mapping\User" table="cms_users">
|
||||
|
||||
<lifecycle-callbacks>
|
||||
<lifecycle-callback type="prePersist" method="onPrePersist" />
|
||||
</lifecycle-callbacks>
|
||||
|
||||
<id name="id" type="integer" column="id">
|
||||
<generator strategy="AUTO"/>
|
||||
</id>
|
||||
|
Loading…
Reference in New Issue
Block a user