From f76f11a2cb228b4161bd84d9856c148cb49f1bd7 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sun, 3 Dec 2006 22:57:44 +0000 Subject: added cache dependency classes. --- .../unit/Caching/TDirectoryCacheDependencyTest.php | 84 ++++++++++++++++++++++ tests/unit/Caching/TFileCacheDependencyTest.php | 60 ++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 tests/unit/Caching/TDirectoryCacheDependencyTest.php create mode 100644 tests/unit/Caching/TFileCacheDependencyTest.php (limited to 'tests/unit') diff --git a/tests/unit/Caching/TDirectoryCacheDependencyTest.php b/tests/unit/Caching/TDirectoryCacheDependencyTest.php new file mode 100644 index 00000000..786720da --- /dev/null +++ b/tests/unit/Caching/TDirectoryCacheDependencyTest.php @@ -0,0 +1,84 @@ +assertEquals($dependency->getDirectory(),$directory); + + try + { + $dependency=new TDirectoryCacheDependency(dirname(__FILE__).'/temp2'); + $this->fail("Expected exception is not raised"); + } + catch(TInvalidDataValueException $e) + { + } + } + + public function testRecursiveCheck() + { + $directory=realpath(dirname(__FILE__).'/temp'); + $dependency=new TDirectoryCacheDependency(dirname(__FILE__).'/temp'); + $this->assertTrue($dependency->getRecursiveCheck()); + $dependency->setRecursiveCheck(false); + $this->assertFalse($dependency->getRecursiveCheck()); + } + + public function testRecursiveLevel() + { + $directory=realpath(dirname(__FILE__).'/temp'); + $dependency=new TDirectoryCacheDependency(dirname(__FILE__).'/temp'); + $this->assertEquals($dependency->getRecursiveLevel(),-1); + $dependency->setRecursiveLevel(5); + $this->assertEquals($dependency->getRecursiveLevel(),5); + } + + public function testHasChanged() + { + $tempFile=dirname(__FILE__).'/temp/foo.txt'; + @unlink($tempFile); + $fw=fopen($tempFile,"w"); + fwrite($fw,"test"); + fclose($fw); + clearstatcache(); + + $dependency=new TDirectoryCacheDependency(dirname($tempFile)); + $str=serialize($dependency); + + // test directory not changed + sleep(2); + $dependency=unserialize($str); + $this->assertFalse($dependency->getHasChanged()); + + // change file + $fw=fopen($tempFile,"w"); + fwrite($fw,"test again"); + fclose($fw); + clearstatcache(); + + // test file changed + sleep(2); + $dependency=unserialize($str); + $this->assertTrue($dependency->getHasChanged()); + + @unlink($tempFile); + } +} + +?> \ No newline at end of file diff --git a/tests/unit/Caching/TFileCacheDependencyTest.php b/tests/unit/Caching/TFileCacheDependencyTest.php new file mode 100644 index 00000000..6b61aed6 --- /dev/null +++ b/tests/unit/Caching/TFileCacheDependencyTest.php @@ -0,0 +1,60 @@ +assertEquals($dependency->getFileName(),__FILE__); + $this->assertEquals($dependency->getTimestamp(),filemtime(__FILE__)); + + $dependency=new TFileCacheDependency(dirname(__FILE__).'/foo.txt'); + $this->assertFalse($dependency->getTimestamp()); + } + + public function testHasChanged() + { + $tempFile=dirname(__FILE__).'/temp/foo.txt'; + @unlink($tempFile); + $fw=fopen($tempFile,"w"); + fwrite($fw,"test"); + fclose($fw); + clearstatcache(); + + $dependency=new TFileCacheDependency($tempFile); + $str=serialize($dependency); + + // test file not changed + sleep(2); + $dependency=unserialize($str); + $this->assertFalse($dependency->getHasChanged()); + + // change file + $fw=fopen($tempFile,"w"); + fwrite($fw,"test again"); + fclose($fw); + clearstatcache(); + + // test file changed + sleep(2); + $dependency=unserialize($str); + $this->assertTrue($dependency->getHasChanged()); + + @unlink($tempFile); + } +} + +?> \ No newline at end of file -- cgit v1.2.3