* @license BSD */ namespace Domframework\Tests; /** 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"); } }