summaryrefslogtreecommitdiff
path: root/tests/unit/Web/TCacheHttpSessionTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/Web/TCacheHttpSessionTest.php')
-rw-r--r--tests/unit/Web/TCacheHttpSessionTest.php129
1 files changed, 129 insertions, 0 deletions
diff --git a/tests/unit/Web/TCacheHttpSessionTest.php b/tests/unit/Web/TCacheHttpSessionTest.php
new file mode 100644
index 00000000..7d5523d6
--- /dev/null
+++ b/tests/unit/Web/TCacheHttpSessionTest.php
@@ -0,0 +1,129 @@
+<?php
+require_once dirname(__FILE__).'/../phpunit.php';
+
+Prado::using('System.Web.TCacheHttpSession');
+Prado::using('System.Caching.TMemCache');
+
+/**
+ * @package System.Web
+ */
+class TCacheHttpSessionTest extends PHPUnit_Framework_TestCase
+{
+ protected $app = null;
+ protected static $cache = null;
+ protected static $session = null;
+
+ protected function setUp()
+ {
+ if(!extension_loaded('memcache'))
+ {
+ self::markTestSkipped('The memcache extension is not available');
+ }
+ else
+ {
+ $basePath = dirname(__FILE__).'/app';
+ $runtimePath = $basePath.'/runtime';
+ if(!is_writable($runtimePath))
+ {
+ self::markTestSkipped("'$runtimePath' is not writable");
+ }
+ $this->app = new TApplication($basePath);
+ self::$cache = new TMemCache();
+ self::$cache->setKeyPrefix('MyCache');
+ self::$cache->init(null);
+ $this->app->setModule('MyCache',self::$cache);
+ }
+ }
+
+ protected function tearDown()
+ {
+ $this->app = null;
+ $this->cache = null;
+ $this->session = null;
+ }
+
+ public function testInit()
+ {
+ $session = new TCacheHttpSession();
+ try
+ {
+ $session->init(null);
+ $this->fail("Expected TConfigurationException is not raised");
+ }
+ catch(TConfigurationException $e)
+ {
+ }
+ unset($session);
+
+ $session = new TCacheHttpSession();
+ try
+ {
+ $session->setCacheModuleID('MaiCache');
+ $session->init(null);
+ $this->fail("Expected TConfigurationException is not raised");
+ $session->open();
+ }
+ catch(TConfigurationException $e)
+ {
+ }
+ unset($session);
+
+ self::$session = new TCacheHttpSession();
+ try
+ {
+ self::$session->setCacheModuleID('MyCache');
+ self::$session->init(null);
+ }
+ catch(TConfigurationException $e)
+ {
+ $this->fail('TConfigurationException is not expected');
+ self::markTestSkipped('Cannot continue this test');
+ }
+ }
+
+ public function testGetCache()
+ {
+ $cache = self::$session->getCache();
+ $this->assertEquals(true, $cache instanceof TMemCache);
+ }
+
+ public function testCacheModuleID()
+ {
+ $id = 'value';
+ self::$session->setCacheModuleID('value');
+ self::assertEquals($id, self::$session->getCacheModuleID());
+ }
+
+ public function testKeyPrefix()
+ {
+ $id = 'value';
+ self::$session->setKeyPrefix('value');
+ self::assertEquals($id, self::$session->getKeyPrefix());
+ }
+
+ public function testSetAndGet()
+ {
+ self::$session['key'] = 'value';
+ self::assertEquals('value', self::$session['key']);
+ }
+
+ public function testAdd()
+ {
+ self::$session->add('anotherkey', 'value');
+ self::assertEquals('value', self::$session['anotherkey']);
+ }
+
+ public function testRemove()
+ {
+ self::$session->remove('key');
+ self::assertEquals(false, self::$session['key']);
+ }
+
+ public function testDestroyAndIsStarted()
+ {
+ $this->testSetAndGet();
+ self::$session->destroy();
+ self::assertEquals(false, self::$session->getIsStarted());
+ }
+}
+?> \ No newline at end of file