96 lines
2.2 KiB
PHP
96 lines
2.2 KiB
PHP
<?php
|
|
|
|
/** DomFramework - Tests
|
|
* @package domframework
|
|
* @author Dominique Fournier <dominique@fournier38.fr>
|
|
* @license BSD
|
|
*/
|
|
|
|
namespace Domframework\Tests;
|
|
|
|
use Domframework\Cachefile;
|
|
|
|
/** Test the Cachefile.php file */
|
|
class CachefileTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
public function testInit()
|
|
{
|
|
// Removing the cache file if it previously exists
|
|
exec("rm -rf /tmp/cache");
|
|
}
|
|
|
|
// Unknown cache file : return FALSE
|
|
public function testRead1()
|
|
{
|
|
$c = new Cachefile();
|
|
$c->directory = "/tmp/cache";
|
|
$res = $c->read("id");
|
|
$this->assertFalse($res);
|
|
}
|
|
|
|
// Write in cache file
|
|
public function testWrite1()
|
|
{
|
|
$c = new Cachefile();
|
|
$c->directory = "/tmp/cache";
|
|
$res = $c->write("id", "DATA_TO_STORE", 3);
|
|
$this->assertTrue($res);
|
|
}
|
|
|
|
// Previous cache file : return DATA_TO_STORE
|
|
public function testRead2()
|
|
{
|
|
$c = new Cachefile();
|
|
$c->directory = "/tmp/cache";
|
|
$res = $c->read("id");
|
|
$this->assertSame("DATA_TO_STORE", $res);
|
|
}
|
|
|
|
// Sleep 4s to expire the cache
|
|
public function testWait1()
|
|
{
|
|
sleep(4);
|
|
}
|
|
|
|
// Previous cache file but expired : return false
|
|
public function testRead3()
|
|
{
|
|
$c = new Cachefile();
|
|
$c->directory = "/tmp/cache";
|
|
$res = $c->read("id");
|
|
$this->assertFalse($res);
|
|
}
|
|
|
|
// Write in cache file
|
|
public function testWrite2()
|
|
{
|
|
$c = new Cachefile();
|
|
$c->directory = "/tmp/cache";
|
|
$res = $c->write("id", "DATA_TO_STORE", 30);
|
|
$this->assertTrue($res);
|
|
}
|
|
|
|
// Create stale lock
|
|
public function testLock1()
|
|
{
|
|
touch("/tmp/cache/" . sha1("id") . ".lock");
|
|
}
|
|
|
|
// Previous cache in time file but lock : return content after lock timeout
|
|
// This test takes 10s to wait the lock which will never be released
|
|
public function testRead4()
|
|
{
|
|
$c = new Cachefile();
|
|
$c->directory = "/tmp/cache";
|
|
$res = $c->read("id");
|
|
$this->assertSame("DATA_TO_STORE", $res);
|
|
}
|
|
|
|
public function testDel1()
|
|
{
|
|
$c = new Cachefile();
|
|
$c->directory = "/tmp/cache";
|
|
$res = $c->delete("id");
|
|
}
|
|
}
|