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