--- /dev/null
+<?php
+
+namespace Doctrine\Tests\Common\Persistence\Mapping;
+
+use Doctrine\Tests\DoctrineTestCase;
+use Doctrine\Common\Persistence\Mapping\Driver\SymfonyFileLocator;
+
+class SymfonyFileLocatorTest extends DoctrineTestCase
+{
+ public function testGetPaths()
+ {
+ $path = __DIR__ . "/_files";
+ $prefix = "Foo";
+
+ $locator = new SymfonyFileLocator(array($path => $prefix));
+ $this->assertEquals(array($path), $locator->getPaths());
+
+ $locator = new SymfonyFileLocator(array($path => $prefix));
+ $this->assertEquals(array($path), $locator->getPaths());
+ }
+
+ public function testGetPrefixes()
+ {
+ $path = __DIR__ . "/_files";
+ $prefix = "Foo";
+
+ $locator = new SymfonyFileLocator(array($path => $prefix));
+ $this->assertEquals(array($path => $prefix), $locator->getNamespacePrefixes());
+ }
+
+ public function testGetFileExtension()
+ {
+ $locator = new SymfonyFileLocator(array(), ".yml");
+ $this->assertEquals(".yml", $locator->getFileExtension());
+ $locator->setFileExtension(".xml");
+ $this->assertEquals(".xml", $locator->getFileExtension());
+ }
+
+ public function testFileExists()
+ {
+ $path = __DIR__ . "/_files";
+ $prefix = "Foo";
+
+ $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
+
+ $this->assertTrue($locator->fileExists("Foo\stdClass"));
+ $this->assertTrue($locator->fileExists("Foo\global"));
+ $this->assertFalse($locator->fileExists("Foo\stdClass2"));
+ $this->assertFalse($locator->fileExists("Foo\global2"));
+ }
+
+ public function testGetAllClassNames()
+ {
+ $path = __DIR__ . "/_files";
+ $prefix = "Foo";
+
+ $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
+ $classes = $locator->getAllClassNames(null);
+ sort($classes);
+
+ $this->assertEquals(array("Foo\\global", "Foo\\stdClass"), $classes);
+ $this->assertEquals(array("Foo\\stdClass"), $locator->getAllClassNames("global"));
+ }
+
+ public function testFindMappingFile()
+ {
+ $path = __DIR__ . "/_files";
+ $prefix = "Foo";
+
+ $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
+
+ $this->assertEquals(__DIR__ . "/_files/stdClass.yml", $locator->findMappingFile("Foo\\stdClass"));
+ }
+
+ public function testFindMappingFileNotFound()
+ {
+ $path = __DIR__ . "/_files";
+ $prefix = "Foo";
+
+ $locator = new SymfonyFileLocator(array($path => $prefix), ".yml");
+
+ $this->setExpectedException(
+ "Doctrine\Common\Persistence\Mapping\MappingException",
+ "No mapping file found named '".__DIR__."/_files/stdClass2.yml' for class 'Foo\stdClass2'."
+ );
+ $locator->findMappingFile("Foo\\stdClass2");
+ }
+}