Files
DomFramework/Tests/CachefileTest.php

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