Source of file VersionedCacheTest.php
Size: 1,852 Bytes - Last Modified: 2021-12-23T10:35:47+00:00
/var/www/docs.ssmods.com/process/src/tests/php/Caching/VersionedCacheTest.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | <?php namespace SilverStripe\Versioned\Tests\Caching; use Psr\SimpleCache\CacheInterface; use SilverStripe\Core\Cache\CacheFactory; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\Versioned\Versioned; class VersionedCacheTest extends SapphireTest { public function testVersionedCache() { $cacheService = CacheInterface::class . '.mytest'; Injector::inst()->load([ $cacheService => [ 'factory' => CacheFactory::class, 'constructor' => [ 'namespace' => 'myapp', ], ], ]); /* @var CacheInterface $cacheInstance */ $cacheInstance = Injector::inst()->get($cacheService); $cacheInstance->clear(); Versioned::set_stage(Versioned::LIVE); $result = $cacheInstance->get('shared_key'); $this->assertNull($result); $cacheInstance->set('shared_key', 'uncle'); $this->assertEquals('uncle', $cacheInstance->get('shared_key'), 'Shared key is cached on LIVE'); Versioned::set_stage(Versioned::DRAFT); $this->assertNull($cacheInstance->get('shared_key'), 'Shared key is not cached on DRAFT'); $cacheInstance->set('shared_key', 'cheese'); $cacheInstance->set('draft_key', 'bar'); $this->assertEquals('cheese', $cacheInstance->get('shared_key'), 'Shared key has its own value on DRAFT'); $this->assertEquals('bar', $cacheInstance->get('draft_key'), 'Draft-only key is cached on DRAFT'); Versioned::set_stage(Versioned::LIVE); $this->assertNull($cacheInstance->get('draft_key'), 'Draft-only key is not on LIVE'); $this->assertEquals('uncle', $cacheInstance->get('shared_key'), 'Value of shared key is preserved on LIVE'); $cacheInstance->clear(); } } |