3 namespace Doctrine\Tests\ORM\Tools;
5 use Doctrine\ORM\Tools\Setup;
6 use Doctrine\Common\Cache\ArrayCache;
8 require_once __DIR__ . '/../../TestInit.php';
10 class SetupTest extends \Doctrine\Tests\OrmTestCase
12 private $originalAutoloaderCount;
13 private $originalIncludePath;
15 public function setUp()
17 if (strpos(\Doctrine\ORM\Version::VERSION, "DEV") === false) {
18 $this->markTestSkipped("Test only runs in a dev-installation from Github");
21 $this->originalAutoloaderCount = count(spl_autoload_functions());
22 $this->originalIncludePath = get_include_path();
25 public function tearDown()
27 if ( ! $this->originalIncludePath) {
31 set_include_path($this->originalIncludePath);
32 $loaders = spl_autoload_functions();
33 for ($i = 0; $i < count($loaders); $i++) {
34 if ($i > $this->originalAutoloaderCount+1) {
35 spl_autoload_unregister($loaders[$i]);
40 public function testGitAutoload()
42 Setup::registerAutoloadGit(__DIR__ . "/../../../../../");
44 $this->assertEquals($this->originalAutoloaderCount + 4, count(spl_autoload_functions()));
47 public function testPEARAutoload()
49 set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . "/../../../../../lib/vendor/doctrine-common/lib");
51 Setup::registerAutoloadPEAR();
53 $this->assertEquals($this->originalAutoloaderCount + 2, count(spl_autoload_functions()));
56 public function testDirectoryAutoload()
58 Setup::registerAutoloadDirectory(__DIR__ . "/../../../../../lib/vendor/doctrine-common/lib");
60 $this->assertEquals($this->originalAutoloaderCount + 2, count(spl_autoload_functions()));
63 public function testAnnotationConfiguration()
65 $config = Setup::createAnnotationMetadataConfiguration(array(), true);
67 $this->assertInstanceOf('Doctrine\ORM\Configuration', $config);
68 $this->assertEquals(sys_get_temp_dir(), $config->getProxyDir());
69 $this->assertEquals('DoctrineProxies', $config->getProxyNamespace());
70 $this->assertInstanceOf('Doctrine\ORM\Mapping\Driver\AnnotationDriver', $config->getMetadataDriverImpl());
73 public function testXMLConfiguration()
75 $config = Setup::createXMLMetadataConfiguration(array(), true);
77 $this->assertInstanceOf('Doctrine\ORM\Configuration', $config);
78 $this->assertInstanceOf('Doctrine\ORM\Mapping\Driver\XmlDriver', $config->getMetadataDriverImpl());
81 public function testYAMLConfiguration()
83 $config = Setup::createYAMLMetadataConfiguration(array(), true);
85 $this->assertInstanceOf('Doctrine\ORM\Configuration', $config);
86 $this->assertInstanceOf('Doctrine\ORM\Mapping\Driver\YamlDriver', $config->getMetadataDriverImpl());
92 public function testConfigureProxyDir()
94 $config = Setup::createAnnotationMetadataConfiguration(array(), true, "/foo");
95 $this->assertEquals('/foo', $config->getProxyDir());
101 public function testConfigureCache()
103 $cache = new ArrayCache();
104 $config = Setup::createAnnotationMetadataConfiguration(array(), true, null, $cache);
106 $this->assertSame($cache, $config->getResultCacheImpl());
107 $this->assertSame($cache, $config->getMetadataCacheImpl());
108 $this->assertSame($cache, $config->getQueryCacheImpl());