| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | <?phpuse 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)));    }}
 |