Skip to content

Commit 0c58552

Browse files
committed
Merge pull request #361 from caciobanu/master
Correction for mapping driver file extension
2 parents 2ea4124 + 6ef5b10 commit 0c58552

File tree

11 files changed

+175
-12
lines changed

11 files changed

+175
-12
lines changed

Mapping/Driver/XmlDriver.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,13 @@
1414

1515
namespace Doctrine\Bundle\MongoDBBundle\Mapping\Driver;
1616

17-
@trigger_error('The '.__NAMESPACE__.'\XmlDriver class is deprecated since version 3.1 and will be removed in 4.0. Use the Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedXmlDriver class instead.', E_USER_DEPRECATED);
18-
1917
use Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedXmlDriver as BaseXmlDriver;
2018

2119
/**
2220
* XmlDriver that additionally looks for mapping information in a global file.
2321
*
2422
* @author Fabien Potencier <[email protected]>
2523
* @author Kris Wallsmith <[email protected]>
26-
* @deprecated since version 3.1, to be removed in 4.0.
27-
* Use {@link Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedXmlDriver} instead.
2824
*/
2925
class XmlDriver extends BaseXmlDriver
3026
{

Mapping/Driver/YamlDriver.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,13 @@
1414

1515
namespace Doctrine\Bundle\MongoDBBundle\Mapping\Driver;
1616

17-
@trigger_error('The '.__NAMESPACE__.'\YamlDriver class is deprecated since version 3.1 and will be removed in 4.0. Use the Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedYamlDriver class instead.', E_USER_DEPRECATED);
18-
1917
use Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedYamlDriver as BaseYamlDriver;
2018

2119
/**
2220
* YamlDriver that additionally looks for mapping information in a global file.
2321
*
2422
* @author Fabien Potencier <[email protected]>
2523
* @author Kris Wallsmith <[email protected]>
26-
* @deprecated since version 3.1, to be removed in 4.0.
27-
* Use {@link Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedYamlDriver} instead.
2824
*/
2925
class YamlDriver extends BaseYamlDriver
3026
{

Resources/config/mongodb.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
<!-- metadata -->
3535
<parameter key="doctrine_mongodb.odm.metadata.driver_chain.class">Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain</parameter>
3636
<parameter key="doctrine_mongodb.odm.metadata.annotation.class">Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver</parameter>
37-
<parameter key="doctrine_mongodb.odm.metadata.xml.class">Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedXmlDriver</parameter>
38-
<parameter key="doctrine_mongodb.odm.metadata.yml.class">Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedYamlDriver</parameter>
37+
<parameter key="doctrine_mongodb.odm.metadata.xml.class">Doctrine\Bundle\MongoDBBundle\Mapping\Driver\XmlDriver</parameter>
38+
<parameter key="doctrine_mongodb.odm.metadata.yml.class">Doctrine\Bundle\MongoDBBundle\Mapping\Driver\YamlDriver</parameter>
3939

4040
<!-- directories -->
4141
<parameter key="doctrine_mongodb.odm.mapping_dirs" type="collection"></parameter>

Tests/DependencyInjection/AbstractMongoDBExtensionTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public function testDependencyInjectionConfigurationDefaults()
4747
$this->assertEquals('Doctrine\Common\Cache\XcacheCache', $container->getParameter('doctrine_mongodb.odm.cache.xcache.class'));
4848
$this->assertEquals('Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain', $container->getParameter('doctrine_mongodb.odm.metadata.driver_chain.class'));
4949
$this->assertEquals('Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver', $container->getParameter('doctrine_mongodb.odm.metadata.annotation.class'));
50-
$this->assertEquals('Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedXmlDriver', $container->getParameter('doctrine_mongodb.odm.metadata.xml.class'));
51-
$this->assertEquals('Doctrine\ODM\MongoDB\Mapping\Driver\SimplifiedYamlDriver', $container->getParameter('doctrine_mongodb.odm.metadata.yml.class'));
50+
$this->assertEquals('Doctrine\Bundle\MongoDBBundle\Mapping\Driver\XmlDriver', $container->getParameter('doctrine_mongodb.odm.metadata.xml.class'));
51+
$this->assertEquals('Doctrine\Bundle\MongoDBBundle\Mapping\Driver\YamlDriver', $container->getParameter('doctrine_mongodb.odm.metadata.yml.class'));
5252

5353
$this->assertEquals('Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntityValidator', $container->getParameter('doctrine_odm.mongodb.validator.unique.class'));
5454

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Doctrine MongoDBBundle
5+
*
6+
* The code was originally distributed inside the Symfony framework.
7+
*
8+
* (c) Fabien Potencier <[email protected]>
9+
* (c) Doctrine Project
10+
*
11+
* For the full copyright and license information, please view the LICENSE
12+
* file that was distributed with this source code.
13+
*/
14+
15+
namespace Doctrine\Bundle\MongoDBBundle\Tests\Mapping\Driver;
16+
17+
use Doctrine\Common\Persistence\Mapping\Driver\FileDriver;
18+
19+
abstract class AbstractDriverTest extends \PHPUnit_Framework_TestCase
20+
{
21+
public function testFindMappingFile()
22+
{
23+
$driver = $this->getDriver(array(
24+
'foo' => 'MyNamespace\MyBundle\DocumentFoo',
25+
$this->getFixtureDir() => 'MyNamespace\MyBundle\Document',
26+
));
27+
28+
$locator = $this->getDriverLocator($driver);
29+
30+
$this->assertEquals(
31+
$this->getFixtureDir() . '/Foo' . $this->getFileExtension(),
32+
$locator->findMappingFile('MyNamespace\MyBundle\Document\Foo')
33+
);
34+
}
35+
36+
public function testFindMappingFileInSubnamespace()
37+
{
38+
$driver = $this->getDriver(array(
39+
$this->getFixtureDir() => 'MyNamespace\MyBundle\Document',
40+
));
41+
42+
$locator = $this->getDriverLocator($driver);
43+
44+
$this->assertEquals(
45+
$this->getFixtureDir() . '/Foo.Bar' . $this->getFileExtension(),
46+
$locator->findMappingFile('MyNamespace\MyBundle\Document\Foo\Bar')
47+
);
48+
}
49+
50+
/**
51+
* @expectedException Doctrine\Common\Persistence\Mapping\MappingException
52+
*/
53+
public function testFindMappingFileNamespacedFoundFileNotFound()
54+
{
55+
$driver = $this->getDriver(array(
56+
$this->getFixtureDir() => 'MyNamespace\MyBundle\Document',
57+
));
58+
59+
$locator = $this->getDriverLocator($driver);
60+
$locator->findMappingFile('MyNamespace\MyBundle\Document\Missing');
61+
}
62+
63+
/**
64+
* @expectedException Doctrine\Common\Persistence\Mapping\MappingException
65+
*/
66+
public function testFindMappingNamespaceNotFound()
67+
{
68+
$driver = $this->getDriver(array(
69+
$this->getFixtureDir() => 'MyNamespace\MyBundle\Document',
70+
));
71+
72+
$locator = $this->getDriverLocator($driver);
73+
$locator->findMappingFile('MyOtherNamespace\MyBundle\Document\Foo');
74+
}
75+
76+
abstract protected function getFileExtension();
77+
abstract protected function getFixtureDir();
78+
abstract protected function getDriver(array $paths = array());
79+
80+
private function getDriverLocator(FileDriver $driver)
81+
{
82+
$ref = new \ReflectionProperty($driver, 'locator');
83+
$ref->setAccessible(true);
84+
85+
return $ref->getValue($driver);
86+
}
87+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<doctrine-mongo-mapping xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping
5+
http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
6+
7+
</doctrine-mongo-mapping>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<doctrine-mongo-mapping xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping
5+
http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
6+
7+
</doctrine-mongo-mapping>

Tests/Mapping/Driver/Fixtures/yml/Foo.Bar.mongodb.yml

Whitespace-only changes.

Tests/Mapping/Driver/Fixtures/yml/Foo.mongodb.yml

Whitespace-only changes.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Doctrine MongoDBBundle
5+
*
6+
* The code was originally distributed inside the Symfony framework.
7+
*
8+
* (c) Fabien Potencier <[email protected]>
9+
* (c) Doctrine Project
10+
*
11+
* For the full copyright and license information, please view the LICENSE
12+
* file that was distributed with this source code.
13+
*/
14+
15+
namespace Doctrine\Bundle\MongoDBBundle\Tests\Mapping\Driver;
16+
17+
use Doctrine\Bundle\MongoDBBundle\Mapping\Driver\XmlDriver;
18+
19+
class XmlDriverTest extends AbstractDriverTest
20+
{
21+
protected function getFileExtension()
22+
{
23+
return '.mongodb.xml';
24+
}
25+
26+
protected function getFixtureDir()
27+
{
28+
return __DIR__ . '/Fixtures/xml';
29+
}
30+
31+
protected function getDriver(array $prefixes = array())
32+
{
33+
return new XmlDriver($prefixes, $this->getFileExtension());
34+
}
35+
}

0 commit comments

Comments
 (0)