4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Config\Tests;
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\Config\ConfigCache;
16 use Symfony\Component\Config\Tests\Resource\ResourceStub;
18 class ConfigCacheTest extends TestCase
20 private $cacheFile = null;
22 protected function setUp()
24 $this->cacheFile = tempnam(sys_get_temp_dir(), 'config_');
27 protected function tearDown()
29 $files = array($this->cacheFile, $this->cacheFile.'.meta');
31 foreach ($files as $file) {
32 if (file_exists($file)) {
39 * @dataProvider debugModes
41 public function testCacheIsNotValidIfNothingHasBeenCached($debug)
43 unlink($this->cacheFile); // remove tempnam() side effect
44 $cache = new ConfigCache($this->cacheFile, $debug);
46 $this->assertFalse($cache->isFresh());
49 public function testIsAlwaysFreshInProduction()
51 $staleResource = new ResourceStub();
52 $staleResource->setFresh(false);
54 $cache = new ConfigCache($this->cacheFile, false);
55 $cache->write('', array($staleResource));
57 $this->assertTrue($cache->isFresh());
61 * @dataProvider debugModes
63 public function testIsFreshWhenNoResourceProvided($debug)
65 $cache = new ConfigCache($this->cacheFile, $debug);
66 $cache->write('', array());
67 $this->assertTrue($cache->isFresh());
70 public function testFreshResourceInDebug()
72 $freshResource = new ResourceStub();
73 $freshResource->setFresh(true);
75 $cache = new ConfigCache($this->cacheFile, true);
76 $cache->write('', array($freshResource));
78 $this->assertTrue($cache->isFresh());
81 public function testStaleResourceInDebug()
83 $staleResource = new ResourceStub();
84 $staleResource->setFresh(false);
86 $cache = new ConfigCache($this->cacheFile, true);
87 $cache->write('', array($staleResource));
89 $this->assertFalse($cache->isFresh());
92 public function debugModes()