FileDriverTest.php in Zircon Profile 8
File
vendor/doctrine/common/tests/Doctrine/Tests/Common/Persistence/Mapping/FileDriverTest.php
View source
<?php
namespace Doctrine\Tests\Common\Persistence\Mapping;
use Doctrine\Tests\DoctrineTestCase;
use Doctrine\Common\Persistence\Mapping\Driver\FileDriver;
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
class FileDriverTest extends DoctrineTestCase {
public function testGlobalBasename() {
$driver = new TestFileDriver(array());
$this
->assertNull($driver
->getGlobalBasename());
$driver
->setGlobalBasename("global");
$this
->assertEquals("global", $driver
->getGlobalBasename());
}
public function testGetElementFromGlobalFile() {
$driver = new TestFileDriver($this
->newLocator());
$driver
->setGlobalBasename("global");
$element = $driver
->getElement('stdGlobal');
$this
->assertEquals('stdGlobal', $element);
}
public function testGetElementFromFile() {
$locator = $this
->newLocator();
$locator
->expects($this
->once())
->method('findMappingFile')
->with($this
->equalTo('stdClass'))
->will($this
->returnValue(__DIR__ . '/_files/stdClass.yml'));
$driver = new TestFileDriver($locator);
$this
->assertEquals('stdClass', $driver
->getElement('stdClass'));
}
public function testGetAllClassNamesGlobalBasename() {
$driver = new TestFileDriver($this
->newLocator());
$driver
->setGlobalBasename("global");
$classNames = $driver
->getAllClassNames();
$this
->assertEquals(array(
'stdGlobal',
'stdGlobal2',
), $classNames);
}
public function testGetAllClassNamesFromMappingFile() {
$locator = $this
->newLocator();
$locator
->expects($this
->any())
->method('getAllClassNames')
->with($this
->equalTo(null))
->will($this
->returnValue(array(
'stdClass',
)));
$driver = new TestFileDriver($locator);
$classNames = $driver
->getAllClassNames();
$this
->assertEquals(array(
'stdClass',
), $classNames);
}
public function testGetAllClassNamesBothSources() {
$locator = $this
->newLocator();
$locator
->expects($this
->any())
->method('getAllClassNames')
->with($this
->equalTo('global'))
->will($this
->returnValue(array(
'stdClass',
)));
$driver = new TestFileDriver($locator);
$driver
->setGlobalBasename("global");
$classNames = $driver
->getAllClassNames();
$this
->assertEquals(array(
'stdGlobal',
'stdGlobal2',
'stdClass',
), $classNames);
}
public function testIsNotTransient() {
$locator = $this
->newLocator();
$locator
->expects($this
->once())
->method('fileExists')
->with($this
->equalTo('stdClass'))
->will($this
->returnValue(true));
$driver = new TestFileDriver($locator);
$driver
->setGlobalBasename("global");
$this
->assertFalse($driver
->isTransient('stdClass'));
$this
->assertFalse($driver
->isTransient('stdGlobal'));
$this
->assertFalse($driver
->isTransient('stdGlobal2'));
}
public function testIsTransient() {
$locator = $this
->newLocator();
$locator
->expects($this
->once())
->method('fileExists')
->with($this
->equalTo('stdClass2'))
->will($this
->returnValue(false));
$driver = new TestFileDriver($locator);
$this
->assertTrue($driver
->isTransient('stdClass2'));
}
public function testNonLocatorFallback() {
$driver = new TestFileDriver(__DIR__ . '/_files', '.yml');
$this
->assertTrue($driver
->isTransient('stdClass2'));
$this
->assertFalse($driver
->isTransient('stdClass'));
}
private function newLocator() {
$locator = $this
->getMock('Doctrine\\Common\\Persistence\\Mapping\\Driver\\FileLocator');
$locator
->expects($this
->any())
->method('getFileExtension')
->will($this
->returnValue('.yml'));
$locator
->expects($this
->any())
->method('getPaths')
->will($this
->returnValue(array(
__DIR__ . "/_files",
)));
return $locator;
}
}
class TestFileDriver extends FileDriver {
protected function loadMappingFile($file) {
if (strpos($file, "global.yml") !== false) {
return array(
'stdGlobal' => 'stdGlobal',
'stdGlobal2' => 'stdGlobal2',
);
}
return array(
'stdClass' => 'stdClass',
);
}
public function loadMetadataForClass($className, ClassMetadata $metadata) {
}
}