Security update for Core, with self-updated composer
[yaffs-website] / vendor / doctrine / cache / tests / Doctrine / Tests / Common / Cache / PredisCacheTest.php
diff --git a/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PredisCacheTest.php b/vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PredisCacheTest.php
new file mode 100644 (file)
index 0000000..e20839d
--- /dev/null
@@ -0,0 +1,87 @@
+<?php
+
+namespace Doctrine\Tests\Common\Cache;
+
+use Doctrine\Common\Cache\Cache;
+use Doctrine\Common\Cache\PredisCache;
+use Predis\Client;
+use Predis\Connection\ConnectionException;
+
+class PredisCacheTest extends CacheTest
+{
+    private $client;
+
+    protected function setUp()
+    {
+        if (!class_exists('Predis\Client')) {
+            $this->markTestSkipped('Predis\Client is missing. Make sure to "composer install" to have all dev dependencies.');
+        }
+
+        $this->client = new Client();
+
+        try {
+            $this->client->connect();
+        } catch (ConnectionException $e) {
+            $this->markTestSkipped('Cannot connect to Redis because of: ' . $e);
+        }
+    }
+
+    public function testHitMissesStatsAreProvided()
+    {
+        $cache = $this->_getCacheDriver();
+        $stats = $cache->getStats();
+
+        $this->assertNotNull($stats[Cache::STATS_HITS]);
+        $this->assertNotNull($stats[Cache::STATS_MISSES]);
+    }
+
+    /**
+     * @return PredisCache
+     */
+    protected function _getCacheDriver()
+    {
+        return new PredisCache($this->client);
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @dataProvider provideDataToCache
+     */
+    public function testSetContainsFetchDelete($value)
+    {
+        if (array() === $value) {
+            $this->markTestIncomplete(
+                'Predis currently doesn\'t support saving empty array values. '
+                . 'See https://github.com/nrk/predis/issues/241'
+            );
+        }
+
+        parent::testSetContainsFetchDelete($value);
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @dataProvider provideDataToCache
+     */
+    public function testUpdateExistingEntry($value)
+    {
+        if (array() === $value) {
+            $this->markTestIncomplete(
+                'Predis currently doesn\'t support saving empty array values. '
+                . 'See https://github.com/nrk/predis/issues/241'
+            );
+        }
+
+        parent::testUpdateExistingEntry($value);
+    }
+
+    public function testAllowsGenericPredisClient()
+    {
+        /* @var $predisClient \Predis\ClientInterface */
+        $predisClient = $this->getMock('Predis\\ClientInterface');
+
+        $this->assertInstanceOf('Doctrine\\Common\\Cache\\PredisCache', new PredisCache($predisClient));
+    }
+}