当前路径:vendor/league/flysystem-cached-adapter/tests/AdapterCacheTests.php <?php use League\Flysystem\Cached\Storage\Adapter; use PHPUnit\Framework\TestCase; class AdapterCacheTests extends TestCase { public function testLoadFail() { $adapter = Mockery::mock('League\Flysystem\AdapterInterface'); $adapter->shouldReceive('has')->once()->with('file.json')->andReturn(false); $cache = new Adapter($adapter, 'file.json', 10); $cache->load(); $this->assertFalse($cache->isComplete('', false)); } public function testLoadExpired() { $response = ['contents' => json_encode([[], ['' => true], 1234567890]), 'path' => 'file.json']; $adapter = Mockery::mock('League\Flysystem\AdapterInterface'); $adapter->shouldReceive('has')->once()->with('file.json')->andReturn(true); $adapter->shouldReceive('read')->once()->with('file.json')->andReturn($response); $adapter->shouldReceive('delete')->once()->with('file.json'); $cache = new Adapter($adapter, 'file.json', 10); $cache->load(); $this->assertFalse($cache->isComplete('', false)); } public function testLoadSuccess() { $response = ['contents' => json_encode([[], ['' => true], 9876543210]), 'path' => 'file.json']; $adapter = Mockery::mock('League\Flysystem\AdapterInterface'); $adapter->shouldReceive('has')->once()->with('file.json')->andReturn(true); $adapter->shouldReceive('read')->once()->with('file.json')->andReturn($response); $cache = new Adapter($adapter, 'file.json', 10); $cache->load(); $this->assertTrue($cache->isComplete('', false)); } public function testSaveExists() { $response = json_encode([[], [], null]); $adapter = Mockery::mock('League\Flysystem\AdapterInterface'); $adapter->shouldReceive('has')->once()->with('file.json')->andReturn(true); $adapter->shouldReceive('update')->once()->with('file.json', $response, Mockery::any()); $cache = new Adapter($adapter, 'file.json', null); $cache->save(); } public function testSaveNew() { $response = json_encode([[], [], null]); $adapter = Mockery::mock('League\Flysystem\AdapterInterface'); $adapter->shouldReceive('has')->once()->with('file.json')->andReturn(false); $adapter->shouldReceive('write')->once()->with('file.json', $response, Mockery::any()); $cache = new Adapter($adapter, 'file.json', null); $cache->save(); } public function testStoreContentsRecursive() { $adapter = Mockery::mock('League\Flysystem\AdapterInterface'); $adapter->shouldReceive('has')->once()->with('file.json')->andReturn(false); $adapter->shouldReceive('write')->once()->with('file.json', Mockery::any(), Mockery::any()); $cache = new Adapter($adapter, 'file.json', null); $contents = [ ['path' => 'foo/bar', 'dirname' => 'foo'], ['path' => 'afoo/bang', 'dirname' => 'afoo'], ]; $cache->storeContents('foo', $contents, true); $this->assertTrue($cache->isComplete('foo', true)); $this->assertFalse($cache->isComplete('afoo', true)); } public function testDeleteDir() { $cache_data = [ 'foo' => ['path' => 'foo', 'type' => 'dir', 'dirname' => ''], 'foo/bar' => ['path' => 'foo/bar', 'type' => 'file', 'dirname' => 'foo'], 'foobaz' => ['path' => 'foobaz', 'type' => 'file', 'dirname' => ''], ]; $response = [ 'contents' => json_encode([$cache_data, [], null]), 'path' => 'file.json', ]; $adapter = Mockery::mock('League\Flysystem\AdapterInterface'); $adapter->shouldReceive('has')->zeroOrMoreTimes()->with('file.json')->andReturn(true); $adapter->shouldReceive('read')->once()->with('file.json')->andReturn($response); $adapter->shouldReceive('update')->once()->with('file.json', Mockery::any(), Mockery::any())->andReturn(true); $cache = new Adapter($adapter, 'file.json', null); $cache->load(); $cache->deleteDir('foo', true); $this->assertSame(1, count($cache->listContents('', true))); } }
相关源码
- 可旋转的彩色立方体C#源代码2021-10-29
- 在线考试系统2021-10-15
- EduSoho开源网校系统源码2019-06-27
- 仿拼多多小程序商城源码2019-06-06
- PHP5网站运行监测系统源码2017-04-14
关于我们 | 顾问团队 | 发展历程 | 联系我们 | 源码上传
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2022. 京ICP备09089570号 | 京公网安备11010702000869号
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2022. 京ICP备09089570号 | 京公网安备11010702000869号