diff --git a/src/Symfony/Component/Config/Resource/DirectoryResource.php b/src/Symfony/Component/Config/Resource/DirectoryResource.php index 515fb5c42d6a..7ae5694ff0cf 100644 --- a/src/Symfony/Component/Config/Resource/DirectoryResource.php +++ b/src/Symfony/Component/Config/Resource/DirectoryResource.php @@ -38,7 +38,7 @@ public function __construct($resource, $pattern = null) */ public function __toString() { - return (string) $this->resource; + return md5(serialize(array($this->resource, $this->pattern))); } /** diff --git a/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php b/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php index 226e2807dc2a..2bbaadc3a721 100644 --- a/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php +++ b/src/Symfony/Component/Config/Tests/Resource/DirectoryResourceTest.php @@ -54,7 +54,6 @@ public function testGetResource() { $resource = new DirectoryResource($this->directory); $this->assertSame($this->directory, $resource->getResource(), '->getResource() returns the path to the resource'); - $this->assertSame($this->directory, (string) $resource, '->__toString() returns the path to the resource'); } public function testGetPattern() @@ -87,6 +86,13 @@ public function testIsFreshNewFile() $this->assertFalse($resource->isFresh(time() + 10), '->isFresh() returns false if a new file is added'); } + public function testIsFreshNewFileWithDifferentPattern() + { + $resource = new DirectoryResource($this->directory, '/.xml$/'); + touch($this->directory.'/new.yaml', time() + 20); + $this->assertTrue($resource->isFresh(time() + 10), '->isFresh() returns true if a new file with a non-matching pattern is added'); + } + public function testIsFreshDeleteFile() { $resource = new DirectoryResource($this->directory); @@ -149,4 +155,12 @@ public function testSerializeUnserialize() $this->assertSame($this->directory, $resource->getResource()); $this->assertSame('/\.(foo|xml)$/', $resource->getPattern()); } + + public function testResourcesWithDifferentPatternsAreDifferent() + { + $resourceA = new DirectoryResource($this->directory, '/.xml$/'); + $resourceB = new DirectoryResource($this->directory, '/.yaml$/'); + + $this->assertEquals(2, count(array_unique(array($resourceA, $resourceB)))); + } }