]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/Cache/CacheTest.php
Merge branch 'develop' of https://github.com/friendica/friendica into develop
[friendica.git] / tests / src / Core / Cache / CacheTest.php
index 5be0e4b893dd7cba8d1c129fee858ed32d826902..86bf5e7f01fa2a1e115db8aaee1aa9a15dba6dc4 100644 (file)
@@ -2,7 +2,7 @@
 
 namespace Friendica\Test\src\Core\Cache;
 
-use Friendica\App;
+use Friendica\Core\Cache\MemcachedCacheDriver;
 use Friendica\Core\Config;
 use Friendica\Test\DatabaseTest;
 use Friendica\Util\DateTimeFormat;
@@ -14,17 +14,21 @@ abstract class CacheTest extends DatabaseTest
         */
        protected $instance;
 
+       /**
+        * @var \Friendica\Core\Cache\IMemoryCacheDriver
+        */
+       protected $cache;
+
+
        abstract protected function getInstance();
 
        protected function setUp()
        {
-               global $a;
                parent::setUp();
                $this->instance = $this->getInstance();
 
                // Reusable App object
-               $this->app = new App(__DIR__.'/../');
-               $a = $this->app;
+               $this->app = \Friendica\BaseObject::getApp();
 
                // Default config
                Config::set('config', 'hostname', 'localhost');
@@ -32,8 +36,13 @@ abstract class CacheTest extends DatabaseTest
                Config::set('system', 'throttle_limit_week', 100);
                Config::set('system', 'throttle_limit_month', 100);
                Config::set('system', 'theme', 'system_theme');
+
+               $this->instance->clear(false);
        }
 
+       /**
+        * @small
+        */
        function testSimple() {
                $this->assertNull($this->instance->get('value1'));
 
@@ -59,6 +68,9 @@ abstract class CacheTest extends DatabaseTest
                $this->assertNull($this->instance->get('value1'));
        }
 
+       /**
+        * @small
+        */
        function testClear() {
                $value = 'ipsum lorum';
                $this->instance->set('1_value1', $value . '1');
@@ -78,21 +90,38 @@ abstract class CacheTest extends DatabaseTest
                        '3_value1' => $this->instance->get('3_value1'),
                ]);
 
+               $this->assertTrue($this->instance->clear());
+
+               $this->assertEquals([
+                       '1_value1' => 'ipsum lorum1',
+                       '1_value2' => 'ipsum lorum2',
+                       '2_value1' => 'ipsum lorum3',
+                       '3_value1' => 'ipsum lorum4',
+               ], [
+                       '1_value1' => $this->instance->get('1_value1'),
+                       '1_value2' => $this->instance->get('1_value2'),
+                       '2_value1' => $this->instance->get('2_value1'),
+                       '3_value1' => $this->instance->get('3_value1'),
+               ]);
+
                $this->assertTrue($this->instance->clear(false));
 
                $this->assertEquals([
                        '1_value1' => null,
                        '1_value2' => null,
-                       '2_value1' => null,
-                       '3_value1' => null,
+                       '2_value3' => null,
+                       '3_value4' => null,
                ], [
                        '1_value1' => $this->instance->get('1_value1'),
                        '1_value2' => $this->instance->get('1_value2'),
-                       '2_value1' => $this->instance->get('2_value1'),
-                       '3_value1' => $this->instance->get('3_value1'),
+                       '2_value3' => $this->instance->get('2_value3'),
+                       '3_value4' => $this->instance->get('3_value4'),
                ]);
        }
 
+       /**
+        * @medium
+        */
        function testTTL() {
                $this->assertNull($this->instance->get('value1'));
 
@@ -106,6 +135,9 @@ abstract class CacheTest extends DatabaseTest
                $this->assertNull($this->instance->get('value1'));
        }
 
+       /**
+        * @small
+        */
        function testDifferentTypesInCache() {
                // String test
                $value = "foobar";
@@ -154,4 +186,27 @@ abstract class CacheTest extends DatabaseTest
                $received = $this->instance->get('objVal');
                $this->assertEquals($value, $received, 'Value type changed from ' . gettype($value) . ' to ' . gettype($received));
        }
+
+       /**
+        * @small
+        */
+       public function testGetAllKeys() {
+               if ($this->cache instanceof MemcachedCacheDriver) {
+                       $this->markTestSkipped('Memcached doesn\'t support getAllKeys anymore');
+               }
+
+               $this->assertTrue($this->instance->set('value1', 'test'));
+               $this->assertTrue($this->instance->set('value2', 'test'));
+               $this->assertTrue($this->instance->set('test_value3', 'test'));
+
+               $list = $this->instance->getAllKeys();
+
+               $this->assertContains('value1', $list);
+               $this->assertContains('value2', $list);
+               $this->assertContains('test_value3', $list);
+
+               $list = $this->instance->getAllKeys('test');
+
+               $this->assertContains('test_value3', $list);
+       }
 }