CacheWarmerAggregateTest.php 2.9 KB

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