96 lines
2.1 KiB
PHP
96 lines
2.1 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");
|
|
}
|
|
}
|
|
|