Merge "objectcache: Add a clear() method to HashBagOStuff"
authorAaron Schulz <aschulz@wikimedia.org>
Tue, 3 Nov 2015 10:16:19 +0000 (10:16 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 3 Nov 2015 10:16:19 +0000 (10:16 +0000)
includes/libs/objectcache/HashBagOStuff.php
tests/phpunit/includes/libs/objectcache/HashBagOStuffTest.php

index 7a514ef..c1ee065 100644 (file)
@@ -94,4 +94,8 @@ class HashBagOStuff extends BagOStuff {
 
                return true;
        }
+
+       public function clear() {
+               $this->bag = array();
+       }
 }
index 4f8a3cb..39b84e1 100644 (file)
@@ -5,6 +5,28 @@
  */
 class HashBagOStuffTest extends PHPUnit_Framework_TestCase {
 
+       public function testDelete() {
+               $cache = new HashBagOStuff();
+               for ( $i = 0; $i < 10; $i++ ) {
+                       $cache->set( "key$i", 1 );
+                       $this->assertEquals( 1, $cache->get( "key$i" ) );
+                       $cache->delete( "key$i" );
+                       $this->assertEquals( false, $cache->get( "key$i" ) );
+               }
+       }
+
+       public function testClear() {
+               $cache = new HashBagOStuff();
+               for ( $i = 0; $i < 10; $i++ ) {
+                       $cache->set( "key$i", 1 );
+                       $this->assertEquals( 1, $cache->get( "key$i" ) );
+               }
+               $cache->clear();
+               for ( $i = 0; $i < 10; $i++ ) {
+                       $this->assertEquals( false, $cache->get( "key$i" ) );
+               }
+       }
+
        public function testEvictionOrder() {
                $cache = new HashBagOStuff( array( 'maxKeys' => 10 ) );
                for ( $i = 0; $i < 10; $i++ ) {