Files
DomFramework/Tests/cachefileTest.php

90 lines
2.0 KiB
PHP

<?php
/** DomFramework - Tests
@package domframework
@author Dominique Fournier <dominique@fournier38.fr> */
/** Test the cache.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");
}
}