<?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");
}
}