123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace Illuminate\Tests\Cache;
- use Illuminate\Cache\ArrayStore;
- use Illuminate\Cache\CacheManager;
- use Mockery as m;
- use PHPUnit\Framework\TestCase;
- class CacheManagerTest extends TestCase
- {
- protected function tearDown(): void
- {
- m::close();
- }
- public function testCustomDriverClosureBoundObjectIsCacheManager()
- {
- $cacheManager = new CacheManager([
- 'config' => [
- 'cache.stores.'.__CLASS__ => [
- 'driver' => __CLASS__,
- ],
- ],
- ]);
- $driver = function () {
- return $this;
- };
- $cacheManager->extend(__CLASS__, $driver);
- $this->assertEquals($cacheManager, $cacheManager->store(__CLASS__));
- }
- public function testForgetDriver()
- {
- $cacheManager = m::mock(CacheManager::class)
- ->shouldAllowMockingProtectedMethods()
- ->makePartial();
- $cacheManager->shouldReceive('resolve')
- ->withArgs(['array'])
- ->times(4)
- ->andReturn(new ArrayStore);
- $cacheManager->shouldReceive('getDefaultDriver')
- ->once()
- ->andReturn('array');
- foreach (['array', ['array'], null] as $option) {
- $cacheManager->store('array');
- $cacheManager->store('array');
- $cacheManager->forgetDriver($option);
- $cacheManager->store('array');
- $cacheManager->store('array');
- }
- }
- public function testForgetDriverForgets()
- {
- $cacheManager = new CacheManager([
- 'config' => [
- 'cache.stores.forget' => [
- 'driver' => 'forget',
- ],
- ],
- ]);
- $cacheManager->extend('forget', function () {
- return new ArrayStore;
- });
- $cacheManager->store('forget')->forever('foo', 'bar');
- $this->assertSame('bar', $cacheManager->store('forget')->get('foo'));
- $cacheManager->forgetDriver('forget');
- $this->assertNull($cacheManager->store('forget')->get('foo'));
- }
- }
|