2010-02-01 21:48:27 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Doctrine\Tests\ORM\Mapping;
|
|
|
|
|
2016-12-08 18:01:04 +01:00
|
|
|
use Doctrine\ORM\Mapping\ClassMetadata;
|
2016-05-11 01:55:12 +07:00
|
|
|
use Doctrine\ORM\Mapping\ClassMetadataFactory;
|
2016-12-08 18:01:04 +01:00
|
|
|
use Doctrine\ORM\Mapping\Driver\YamlDriver;
|
|
|
|
use Doctrine\Tests\Models\DirectoryTree\Directory;
|
|
|
|
use Doctrine\Tests\Models\DirectoryTree\File;
|
|
|
|
use Doctrine\Tests\Models\Generic\SerializationModel;
|
|
|
|
use Symfony\Component\Yaml\Yaml;
|
2010-02-01 21:48:27 +00:00
|
|
|
|
|
|
|
class YamlMappingDriverTest extends AbstractMappingDriverTest
|
|
|
|
{
|
|
|
|
protected function _loadDriver()
|
|
|
|
{
|
2016-12-08 18:01:04 +01:00
|
|
|
if (!class_exists(Yaml::class, true)) {
|
2010-04-07 20:35:33 +02:00
|
|
|
$this->markTestSkipped('Please install Symfony YAML Component into the include path of your PHP installation.');
|
|
|
|
}
|
|
|
|
|
2010-02-01 21:48:27 +00:00
|
|
|
return new YamlDriver(__DIR__ . DIRECTORY_SEPARATOR . 'yaml');
|
|
|
|
}
|
2010-09-16 22:27:04 +02:00
|
|
|
|
2010-09-21 23:14:45 +02:00
|
|
|
/**
|
|
|
|
* @group DDC-671
|
|
|
|
*
|
|
|
|
* Entities for this test are in AbstractMappingDriverTest
|
|
|
|
*/
|
2010-09-16 22:27:04 +02:00
|
|
|
public function testJoinTablesWithMappedSuperclassForYamlDriver()
|
|
|
|
{
|
2010-09-21 23:53:26 +02:00
|
|
|
$yamlDriver = $this->_loadDriver();
|
2016-12-07 23:33:41 +01:00
|
|
|
$yamlDriver->getLocator()->addPaths([__DIR__ . DIRECTORY_SEPARATOR . 'yaml']);
|
2010-09-20 19:23:41 +02:00
|
|
|
|
2010-09-21 23:53:26 +02:00
|
|
|
$em = $this->_getTestEntityManager();
|
|
|
|
$em->getConfiguration()->setMetadataDriverImpl($yamlDriver);
|
2016-05-11 01:55:12 +07:00
|
|
|
$factory = new ClassMetadataFactory();
|
2010-11-27 20:53:26 +01:00
|
|
|
$factory->setEntityManager($em);
|
2010-09-20 19:23:41 +02:00
|
|
|
|
2016-12-08 18:01:04 +01:00
|
|
|
$classPage = new ClassMetadata(File::class);
|
|
|
|
$classPage = $factory->getMetadataFor(File::class);
|
|
|
|
$this->assertEquals(File::class, $classPage->associationMappings['parentDirectory']['sourceEntity']);
|
2010-09-20 19:23:41 +02:00
|
|
|
|
2016-12-08 18:01:04 +01:00
|
|
|
$classDirectory = new ClassMetadata(Directory::class);
|
|
|
|
$classDirectory = $factory->getMetadataFor(Directory::class);
|
|
|
|
$this->assertEquals(Directory::class, $classDirectory->associationMappings['parentDirectory']['sourceEntity']);
|
2010-07-06 20:19:43 +02:00
|
|
|
}
|
2010-09-16 22:27:04 +02:00
|
|
|
|
2011-12-15 17:12:01 -02:00
|
|
|
/**
|
|
|
|
* @group DDC-1468
|
|
|
|
*
|
2012-01-17 15:39:52 +01:00
|
|
|
* @expectedException Doctrine\Common\Persistence\Mapping\MappingException
|
2011-12-15 17:12:01 -02:00
|
|
|
* @expectedExceptionMessage Invalid mapping file 'Doctrine.Tests.Models.Generic.SerializationModel.dcm.yml' for class 'Doctrine\Tests\Models\Generic\SerializationModel'.
|
|
|
|
*/
|
|
|
|
public function testInvalidMappingFileException()
|
|
|
|
{
|
2016-12-08 18:01:04 +01:00
|
|
|
$this->createClassMetadata(SerializationModel::class);
|
2011-12-15 17:12:01 -02:00
|
|
|
}
|
|
|
|
|
2012-10-20 00:28:38 -03:00
|
|
|
/**
|
|
|
|
* @group DDC-2069
|
|
|
|
*/
|
|
|
|
public function testSpacesShouldBeIgnoredWhenUseExplode()
|
|
|
|
{
|
2016-12-08 18:01:04 +01:00
|
|
|
$metadata = $this->createClassMetadata(DDC2069Entity::class);
|
2012-10-20 00:28:38 -03:00
|
|
|
$unique = $metadata->table['uniqueConstraints'][0]['columns'];
|
|
|
|
$indexes = $metadata->table['indexes'][0]['columns'];
|
|
|
|
|
|
|
|
$nameField = $metadata->fieldMappings['name'];
|
|
|
|
$valueField = $metadata->fieldMappings['value'];
|
|
|
|
|
|
|
|
$this->assertEquals('name', $unique[0]);
|
|
|
|
$this->assertEquals('value', $unique[1]);
|
|
|
|
|
|
|
|
$this->assertEquals('value', $indexes[0]);
|
|
|
|
$this->assertEquals('name', $indexes[1]);
|
|
|
|
|
|
|
|
$this->assertEquals(255, $nameField['length']);
|
|
|
|
$this->assertEquals(255, $valueField['length']);
|
|
|
|
}
|
|
|
|
|
2010-07-06 20:19:43 +02:00
|
|
|
}
|
2012-10-20 00:28:38 -03:00
|
|
|
|
|
|
|
class DDC2069Entity
|
|
|
|
{
|
|
|
|
public $id;
|
|
|
|
|
|
|
|
public $name;
|
|
|
|
|
|
|
|
public $value;
|
2014-04-07 14:43:25 +02:00
|
|
|
}
|