<?php namespace SilverStripe\Core\Tests\Cache; use Psr\SimpleCache\CacheInterface; use SilverStripe\Core\Cache\ApcuCacheFactory; use SilverStripe\Core\Cache\MemcachedCacheFactory; use SilverStripe\Core\Injector\Injector; use SilverStripe\Core\Tests\Cache\CacheTest\MockCache; use SilverStripe\Dev\SapphireTest; use Symfony\Component\Cache\Simple\ApcuCache; use Symfony\Component\Cache\Simple\MemcachedCache; class CacheTest extends SapphireTest { protected function setUp() { parent::setUp(); Injector::inst() ->load([ ApcuCacheFactory::class => [ 'constructor' => [ 'version' => 'ss40test' ] ], MemcachedCacheFactory::class => MemcachedCacheFactory::class, CacheInterface::class . '.TestApcuCache' => [ 'factory' => ApcuCacheFactory::class, 'constructor' => [ 'namespace' => 'TestApcuCache', 'defaultLifetime' => 2600, ], ], CacheInterface::class . '.TestMemcache' => [ 'factory' => MemcachedCacheFactory::class, 'constructor' => [ 'namespace' => 'TestMemCache', 'defaultLifetime' => 5600, ], ], ApcuCache::class => MockCache::class, MemcachedCache::class => MockCache::class, ]); } public function testApcuCacheFactory() { $cache = Injector::inst()->get(CacheInterface::class . '.TestApcuCache'); $this->assertInstanceOf( MockCache::class, $cache ); $this->assertEquals( [ 'TestApcuCache_' . md5(BASE_PATH), 2600, 'ss40test' ], $cache->getArgs() ); } public function testMemCacheFactory() { $cache = Injector::inst()->get(CacheInterface::class . '.TestMemcache'); $this->assertInstanceOf( MockCache::class, $cache ); $this->assertEquals( [ null, 'TestMemCache_' . md5(BASE_PATH), 5600 ], $cache->getArgs() ); } }