use PHPUnit\Framework\TestCase;
use Symfony\Component\Config\Resource\ClassExistenceResource;
+use Symfony\Component\Config\Tests\Fixtures\Resource\ConditionalClass;
+use Symfony\Component\Config\Tests\Fixtures\BadParent;
class ClassExistenceResourceTest extends TestCase
{
$this->assertTrue($res->isFresh(time()));
}
+
+ public function testExistsKo()
+ {
+ spl_autoload_register($autoloader = function ($class) use (&$loadedClass) { $loadedClass = $class; });
+
+ try {
+ $res = new ClassExistenceResource('MissingFooClass');
+ $this->assertTrue($res->isFresh(0));
+
+ $this->assertSame('MissingFooClass', $loadedClass);
+
+ $loadedClass = 123;
+
+ $res = new ClassExistenceResource('MissingFooClass', false);
+
+ $this->assertSame(123, $loadedClass);
+ } finally {
+ spl_autoload_unregister($autoloader);
+ }
+ }
+
+ public function testBadParentWithTimestamp()
+ {
+ $res = new ClassExistenceResource(BadParent::class, false);
+ $this->assertTrue($res->isFresh(time()));
+ }
+
+ /**
+ * @expectedException \ReflectionException
+ * @expectedExceptionMessage Class Symfony\Component\Config\Tests\Fixtures\MissingParent not found
+ */
+ public function testBadParentWithNoTimestamp()
+ {
+ $res = new ClassExistenceResource(BadParent::class, false);
+ $res->isFresh(0);
+ }
+
+ public function testConditionalClass()
+ {
+ $res = new ClassExistenceResource(ConditionalClass::class, false);
+
+ $this->assertFalse($res->isFresh(0));
+ }
}