| | <?php |
| |
|
| | namespace Kanboard\Core\Cache; |
| |
|
| | require_once __DIR__.'/../../Base.php'; |
| |
|
| | function file_put_contents($filename, $data) |
| | { |
| | return FileCacheTest::$functions->file_put_contents($filename, $data); |
| | } |
| |
|
| | function file_get_contents($filename) |
| | { |
| | return FileCacheTest::$functions->file_get_contents($filename); |
| | } |
| |
|
| | function mkdir($filename, $mode = 0777, $recursif = false) |
| | { |
| | return FileCacheTest::$functions->mkdir($filename, $mode, $recursif); |
| | } |
| |
|
| | function is_dir($filename) |
| | { |
| | return FileCacheTest::$functions->is_dir($filename); |
| | } |
| |
|
| | function file_exists($filename) |
| | { |
| | return FileCacheTest::$functions->file_exists($filename); |
| | } |
| |
|
| | function unlink($filename) |
| | { |
| | return FileCacheTest::$functions->unlink($filename); |
| | } |
| |
|
| | class FileCacheTest extends \Base |
| | { |
| | |
| | |
| | |
| | public static $functions; |
| |
|
| | protected function setUp(): void |
| | { |
| | parent::setup(); |
| |
|
| | self::$functions = $this |
| | ->getMockBuilder('stdClass') |
| | ->setMethods(array( |
| | 'file_put_contents', |
| | 'file_get_contents', |
| | 'file_exists', |
| | 'mkdir', |
| | 'is_dir', |
| | 'unlink', |
| | )) |
| | ->getMock(); |
| | } |
| |
|
| | protected function tearDown(): void |
| | { |
| | parent::tearDown(); |
| | self::$functions = null; |
| | } |
| |
|
| | public function testSet() |
| | { |
| | $key = 'mykey'; |
| | $data = 'data'; |
| | $cache = new FileCache(); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('is_dir') |
| | ->with( |
| | $this->equalTo(CACHE_DIR) |
| | ) |
| | ->will($this->returnValue(false)); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('mkdir') |
| | ->with( |
| | $this->equalTo(CACHE_DIR), |
| | 0755 |
| | ) |
| | ->will($this->returnValue(true)); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('file_put_contents') |
| | ->with( |
| | $this->equalTo(CACHE_DIR.DIRECTORY_SEPARATOR.$key), |
| | $this->equalTo(serialize($data)) |
| | ) |
| | ->will($this->returnValue(true)); |
| |
|
| | $cache->set($key, $data); |
| | } |
| |
|
| | public function testGet() |
| | { |
| | $key = 'mykey'; |
| | $data = 'data'; |
| | $cache = new FileCache(); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('file_exists') |
| | ->with( |
| | $this->equalTo(CACHE_DIR.DIRECTORY_SEPARATOR.$key) |
| | ) |
| | ->will($this->returnValue(true)); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('file_get_contents') |
| | ->with( |
| | $this->equalTo(CACHE_DIR.DIRECTORY_SEPARATOR.$key) |
| | ) |
| | ->will($this->returnValue(serialize($data))); |
| |
|
| | $this->assertSame($data, $cache->get($key)); |
| | } |
| |
|
| | public function testGetWithKeyNotFound() |
| | { |
| | $key = 'mykey'; |
| | $cache = new FileCache(); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('file_exists') |
| | ->with( |
| | $this->equalTo(CACHE_DIR.DIRECTORY_SEPARATOR.$key) |
| | ) |
| | ->will($this->returnValue(false)); |
| |
|
| | $this->assertNull($cache->get($key)); |
| | } |
| |
|
| | public function testRemoveWithKeyNotFound() |
| | { |
| | $key = 'mykey'; |
| | $cache = new FileCache(); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('file_exists') |
| | ->with( |
| | $this->equalTo(CACHE_DIR.DIRECTORY_SEPARATOR.$key) |
| | ) |
| | ->will($this->returnValue(false)); |
| |
|
| | self::$functions |
| | ->expects($this->never()) |
| | ->method('unlink'); |
| |
|
| | $cache->remove($key); |
| | } |
| |
|
| | public function testRemove() |
| | { |
| | $key = 'mykey'; |
| | $cache = new FileCache(); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('file_exists') |
| | ->with( |
| | $this->equalTo(CACHE_DIR.DIRECTORY_SEPARATOR.$key) |
| | ) |
| | ->will($this->returnValue(true)); |
| |
|
| | self::$functions |
| | ->expects($this->once()) |
| | ->method('unlink') |
| | ->with( |
| | $this->equalTo(CACHE_DIR.DIRECTORY_SEPARATOR.$key) |
| | ) |
| | ->will($this->returnValue(true)); |
| |
|
| | $cache->remove($key); |
| | } |
| | } |
| |
|