diff options
author | Robin Appelman <icewind@owncloud.com> | 2013-07-16 16:06:00 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2013-07-16 16:06:00 +0200 |
commit | 504089940de88220a425db21e8e133582fe15c30 (patch) | |
tree | 7a2eec110b5e967981f1670f84df23e3f0f85845 | |
parent | 8ad148feaf975481815b3f2413fc1fa34b3e8be7 (diff) | |
download | nextcloud-server-504089940de88220a425db21e8e133582fe15c30.tar.gz nextcloud-server-504089940de88220a425db21e8e133582fe15c30.zip |
mamcache: implement the ArrayAccess interface
-rw-r--r-- | lib/memcache/cache.php | 20 | ||||
-rw-r--r-- | tests/lib/memcache/cache.php | 22 |
2 files changed, 41 insertions, 1 deletions
diff --git a/lib/memcache/cache.php b/lib/memcache/cache.php index 9db69ae4104..0ad1cc7ec03 100644 --- a/lib/memcache/cache.php +++ b/lib/memcache/cache.php @@ -8,7 +8,7 @@ namespace OC\Memcache; -abstract class Cache { +abstract class Cache implements \ArrayAccess { /** * @var string $prefix */ @@ -56,4 +56,22 @@ abstract class Cache { * @return mixed */ abstract public function clear($prefix = ''); + + //implement the ArrayAccess interface + + public function offsetExists($offset) { + return $this->hasKey($offset); + } + + public function offsetSet($offset, $value) { + $this->set($offset, $value); + } + + public function offsetGet($offset) { + return $this->get($offset); + } + + public function offsetUnset($offset) { + $this->remove($offset); + } } diff --git a/tests/lib/memcache/cache.php b/tests/lib/memcache/cache.php index 2c1dbc9d2f7..e2643b9fcd9 100644 --- a/tests/lib/memcache/cache.php +++ b/tests/lib/memcache/cache.php @@ -28,6 +28,28 @@ class Cache extends \Test_Cache { $this->assertFalse($this->instance->hasKey('foo')); } + public function testArrayAccessSet() { + $this->instance['foo'] = 'bar'; + $this->assertEquals('bar', $this->instance->get('foo')); + } + + public function testArrayAccessGet() { + $this->instance->set('foo', 'bar'); + $this->assertEquals('bar', $this->instance['foo']); + } + + public function testArrayAccessExists() { + $this->assertFalse(isset($this->instance['foo'])); + $this->instance->set('foo', 'bar'); + $this->assertTrue(isset($this->instance['foo'])); + } + + public function testArrayAccessUnset() { + $this->instance->set('foo', 'bar'); + unset($this->instance['foo']); + $this->assertFalse($this->instance->hasKey('foo')); + } + public function tearDown() { if ($this->instance) { $this->instance->clear(); |