Add tests for SQL based api cache
This commit is contained in:
parent
440a999c2e
commit
0f6c998109
@ -33,16 +33,7 @@ class SQLDriver extends DB implements \Aviat\Ion\Cache\CacheDriverInterface {
|
|||||||
public function __construct(ContainerInterface $container)
|
public function __construct(ContainerInterface $container)
|
||||||
{
|
{
|
||||||
parent::__construct($container);
|
parent::__construct($container);
|
||||||
|
$this->db = \Query($this->db_config['collection']);
|
||||||
try
|
|
||||||
{
|
|
||||||
$this->db = \Query($this->db_config['collection']);
|
|
||||||
}
|
|
||||||
catch (\PDOException $e)
|
|
||||||
{
|
|
||||||
$this->valid_database = FALSE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -94,11 +85,11 @@ class SQLDriver extends DB implements \Aviat\Ion\Cache\CacheDriverInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invalidate a cached value
|
* Invalidate a cached value
|
||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @return CacheDriverInterface
|
* @return CacheDriverInterface
|
||||||
*/
|
*/
|
||||||
public function invalidate($key)
|
public function invalidate($key)
|
||||||
{
|
{
|
||||||
$this->db->where('key', $key)
|
$this->db->where('key', $key)
|
||||||
@ -108,10 +99,10 @@ class SQLDriver extends DB implements \Aviat\Ion\Cache\CacheDriverInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear the contents of the cache
|
* Clear the contents of the cache
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function invalidateAll()
|
public function invalidateAll()
|
||||||
{
|
{
|
||||||
$this->db->truncate('cache');
|
$this->db->truncate('cache');
|
||||||
|
41
tests/Ion/Cache/Driver/CacheDriverBase.php
Normal file
41
tests/Ion/Cache/Driver/CacheDriverBase.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
trait CacheDriverBase {
|
||||||
|
|
||||||
|
protected $foo = [
|
||||||
|
'bar' => [
|
||||||
|
'baz' => 'foobar'
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $bar = 'secondvalue';
|
||||||
|
|
||||||
|
public function testHasCacheDriver()
|
||||||
|
{
|
||||||
|
$this->assertTrue((bool) $this->driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testDriverGetSet()
|
||||||
|
{
|
||||||
|
$this->driver->set('foo', $this->foo);
|
||||||
|
$this->assertEquals($this->driver->get('foo'), $this->foo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testInvalidate()
|
||||||
|
{
|
||||||
|
$this->driver->set('foo', $this->foo);
|
||||||
|
$this->driver->invalidate('foo');
|
||||||
|
$this->assertEmpty($this->driver->get('foo'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testInvalidateAll()
|
||||||
|
{
|
||||||
|
$this->driver->set('foo', $this->foo);
|
||||||
|
$this->driver->set('bar', $this->bar);
|
||||||
|
|
||||||
|
$this->driver->invalidateAll();
|
||||||
|
|
||||||
|
$this->assertEmpty($this->driver->get('foo'));
|
||||||
|
$this->assertEmpty($this->driver->get('bar'));
|
||||||
|
}
|
||||||
|
}
|
20
tests/Ion/Cache/Driver/SQLDriverTest.php
Normal file
20
tests/Ion/Cache/Driver/SQLDriverTest.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require('CacheDriverBase.php');
|
||||||
|
|
||||||
|
use Aviat\Ion\Friend;
|
||||||
|
use Aviat\Ion\Cache\Driver\SQLDriver;
|
||||||
|
|
||||||
|
class CacheSQLDriverTest extends AnimeClient_TestCase {
|
||||||
|
use CacheDriverBase;
|
||||||
|
|
||||||
|
protected $driver;
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
$this->driver = new SQLDriver($this->container);
|
||||||
|
$friend = new Friend($this->driver);
|
||||||
|
$friend->db->query('CREATE TABLE IF NOT EXISTS "cache" ("key" TEXT NULL, "value" TEXT NULL, PRIMARY KEY ("key"))');
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user