summaryrefslogtreecommitdiff
path: root/tests/simple_unit/SqlMap/SqlMapCacheTest.php
diff options
context:
space:
mode:
authorwei <>2006-12-04 02:42:57 +0000
committerwei <>2006-12-04 02:42:57 +0000
commit562979c4a8fe47952edf7986d4144624e41630f7 (patch)
treeb79c3fd28e1aedb40d04e148da4b0763c928a3a5 /tests/simple_unit/SqlMap/SqlMapCacheTest.php
parent91fe694c8755aa2d05743946a3681be7232420b6 (diff)
add unit tests for active record and sqlmap
Diffstat (limited to 'tests/simple_unit/SqlMap/SqlMapCacheTest.php')
-rw-r--r--tests/simple_unit/SqlMap/SqlMapCacheTest.php77
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/simple_unit/SqlMap/SqlMapCacheTest.php b/tests/simple_unit/SqlMap/SqlMapCacheTest.php
new file mode 100644
index 00000000..af392fb3
--- /dev/null
+++ b/tests/simple_unit/SqlMap/SqlMapCacheTest.php
@@ -0,0 +1,77 @@
+<?php
+
+require_once(dirname(__FILE__).'/BaseCase.php');
+
+/**
+ * @package System.DataAccess.SQLMap
+ */
+class SqlMapCacheTest extends UnitTestCase
+{
+ function testFIFOCache()
+ {
+ $fifo = new TSqlMapFifoCache(2);
+ $object1 = new TSqlMapManager;
+ $object2 = new TComponent;
+ $object3 = new TSqlMapGateway(null);
+
+ $key1 = 'key1';
+ $key2 = 'key2';
+ $key3 = 'key3';
+
+ $fifo->set($key1, $object1);
+ $fifo->set($key2, $object2);
+
+ $this->assertTrue($object1 === $fifo->get($key1));
+ $this->assertTrue($object2 === $fifo->get($key2));
+
+ //object 1 should be removed
+ $fifo->set($key3, $object3);
+
+ $this->assertNull($fifo->get($key1));
+ $this->assertTrue($object2 === $fifo->get($key2));
+ $this->assertTrue($object3 === $fifo->get($key3));
+
+ //object 2 should be removed
+ $fifo->set($key1, $object1);
+
+ $this->assertNull($fifo->get($key2));
+ $this->assertTrue($object3 === $fifo->get($key3));
+ $this->assertTrue($object1 === $fifo->get($key1));
+ }
+
+ function testLruCache()
+ {
+ $lru = new TSqlMapLruCache(2);
+
+ $object1 = new TSqlMapManager;
+ $object2 = new TComponent;
+ $object3 = new TSqlMapGateway(null);
+
+ $key1 = 'key1';
+ $key2 = 'key2';
+ $key3 = 'key3';
+
+ $lru->set($key1, $object1);
+ $lru->set($key2, $object2);
+
+ $this->assertTrue($object2 === $lru->get($key2));
+ $this->assertTrue($object1 === $lru->get($key1));
+
+ //object 2 should be removed, i.e. least recently used
+ $lru->set($key3, $object3);
+
+ $this->assertNull($lru->get($key2));
+ $this->assertTrue($object1 === $lru->get($key1));
+ $this->assertTrue($object3 === $lru->get($key3));
+
+ //object 1 will be removed
+ $lru->set($key2, $object2);
+
+ $this->assertNull($lru->get($key1));
+ $this->assertTrue($object2 === $lru->get($key2));
+ $this->assertTrue($object3 === $lru->get($key3));
+ }
+}
+
+
+?> \ No newline at end of file