diff options
| author | wei <> | 2006-12-04 02:42:57 +0000 | 
|---|---|---|
| committer | wei <> | 2006-12-04 02:42:57 +0000 | 
| commit | 562979c4a8fe47952edf7986d4144624e41630f7 (patch) | |
| tree | b79c3fd28e1aedb40d04e148da4b0763c928a3a5 /tests/simple_unit/SqlMap/SqlMapCacheTest.php | |
| parent | 91fe694c8755aa2d05743946a3681be7232420b6 (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.php | 77 | 
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  | 
