Add tests for SQL based api cache

This commit is contained in:
Timothy Warren 2016-04-07 12:34:57 -04:00
parent 5db1d8b494
commit 3d19f93001
3 changed files with 71 additions and 19 deletions

View File

@ -33,17 +33,8 @@ 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);
try
{
$this->db = \Query($this->db_config['collection']); $this->db = \Query($this->db_config['collection']);
} }
catch (\PDOException $e)
{
$this->valid_database = FALSE;
return FALSE;
}
}
/** /**
* Retreive a value from the cache backend * Retreive a value from the cache backend

View 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'));
}
}

View 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"))');
}
}