ba159124c93e90f972c2a5fff1a095dd03c3bf50
[yaffs-website] / vendor / symfony / http-kernel / Tests / CacheWarmer / CacheWarmerAggregateTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\HttpKernel\Tests\CacheWarmer;
13
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate;
16
17 class CacheWarmerAggregateTest extends TestCase
18 {
19     protected static $cacheDir;
20
21     public static function setUpBeforeClass()
22     {
23         self::$cacheDir = tempnam(sys_get_temp_dir(), 'sf2_cache_warmer_dir');
24     }
25
26     public static function tearDownAfterClass()
27     {
28         @unlink(self::$cacheDir);
29     }
30
31     public function testInjectWarmersUsingConstructor()
32     {
33         $warmer = $this->getCacheWarmerMock();
34         $warmer
35             ->expects($this->once())
36             ->method('warmUp');
37         $aggregate = new CacheWarmerAggregate(array($warmer));
38         $aggregate->warmUp(self::$cacheDir);
39     }
40
41     /**
42      * @group legacy
43      */
44     public function testInjectWarmersUsingAdd()
45     {
46         $warmer = $this->getCacheWarmerMock();
47         $warmer
48             ->expects($this->once())
49             ->method('warmUp');
50         $aggregate = new CacheWarmerAggregate();
51         $aggregate->add($warmer);
52         $aggregate->warmUp(self::$cacheDir);
53     }
54
55     /**
56      * @group legacy
57      */
58     public function testInjectWarmersUsingSetWarmers()
59     {
60         $warmer = $this->getCacheWarmerMock();
61         $warmer
62             ->expects($this->once())
63             ->method('warmUp');
64         $aggregate = new CacheWarmerAggregate();
65         $aggregate->setWarmers(array($warmer));
66         $aggregate->warmUp(self::$cacheDir);
67     }
68
69     public function testWarmupDoesCallWarmupOnOptionalWarmersWhenEnableOptionalWarmersIsEnabled()
70     {
71         $warmer = $this->getCacheWarmerMock();
72         $warmer
73             ->expects($this->never())
74             ->method('isOptional');
75         $warmer
76             ->expects($this->once())
77             ->method('warmUp');
78
79         $aggregate = new CacheWarmerAggregate(array($warmer));
80         $aggregate->enableOptionalWarmers();
81         $aggregate->warmUp(self::$cacheDir);
82     }
83
84     public function testWarmupDoesNotCallWarmupOnOptionalWarmersWhenEnableOptionalWarmersIsNotEnabled()
85     {
86         $warmer = $this->getCacheWarmerMock();
87         $warmer
88             ->expects($this->once())
89             ->method('isOptional')
90             ->will($this->returnValue(true));
91         $warmer
92             ->expects($this->never())
93             ->method('warmUp');
94
95         $aggregate = new CacheWarmerAggregate(array($warmer));
96         $aggregate->warmUp(self::$cacheDir);
97     }
98
99     protected function getCacheWarmerMock()
100     {
101         $warmer = $this->getMockBuilder('Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerInterface')
102             ->disableOriginalConstructor()
103             ->getMock();
104
105         return $warmer;
106     }
107 }