Files
DomFramework/Tests/CachefileTest.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");
}
}