| <?php | 
| /** | 
|  * PhpUnderControl_PhalApiRedis_Test | 
|  * | 
|  * 针对 ../../PhalApi/Cache/Redis.php PhalApi_Redis 类的PHPUnit单元测试 | 
|  * | 
|  * @author: dogstar 20150516 | 
|  */ | 
|   | 
| require_once dirname(__FILE__) . '/../test_env.php'; | 
|   | 
| if (!class_exists('PhalApi_Cache_Redis')) { | 
|     require dirname(__FILE__) . '/../../PhalApi/Cache/Redis.php'; | 
| } | 
|   | 
| class PhpUnderControl_PhalApiRedis_Test extends PHPUnit_Framework_TestCase | 
| { | 
|     public $phalApiRedis; | 
|   | 
|     protected function setUp() | 
|     { | 
|         parent::setUp(); | 
|   | 
|         $config = array('host' => '127.0.0.1', 'port' => 6379); | 
|         $this->phalApiRedis = new PhalApi_Cache_Redis($config); | 
|     } | 
|   | 
|     protected function tearDown() | 
|     { | 
|     } | 
|   | 
|   | 
|     /** | 
|      * @group testSet | 
|      */  | 
|     public function testSet() | 
|     { | 
|         $key = 'testSetKey'; | 
|         $value = 'phalapi'; | 
|         $expire = 2; | 
|   | 
|         $rs = $this->phalApiRedis->set($key, $value, $expire); | 
|     } | 
|   | 
|     /** | 
|      * @group testGet | 
|      */  | 
|     public function testGet() | 
|     { | 
|         $key = 'testSetKey'; | 
|   | 
|         $rs = $this->phalApiRedis->get($key); | 
|   | 
|         $this->assertEquals('phalapi', $rs); | 
|   | 
|         sleep(3); | 
|   | 
|         $this->assertSame(NULL, $this->phalApiRedis->get($key)); | 
|     } | 
|   | 
|     /** | 
|      * @group testDelete | 
|      */  | 
|     public function testDelete() | 
|     { | 
|         $key = 'testDeleteKey'; | 
|   | 
|         $this->phalApiRedis->set($key, 'net', 3); | 
|   | 
|         $this->assertNotEmpty($this->phalApiRedis->get($key)); | 
|   | 
|         $rs = $this->phalApiRedis->delete($key); | 
|   | 
|         $this->assertEmpty($this->phalApiRedis->get($key)); | 
|     } | 
|   | 
|     /** | 
|      * @group testSetnx | 
|      */  | 
|     public function testSetnx() | 
|     { | 
|         $key = 'testSetnxKey'; | 
|         $value = array('name' => 'phalapi'); | 
|   | 
|         $rs = $this->phalApiRedis->setnx($key, $value); | 
|   | 
|         $this->assertEquals(array('name' => 'phalapi'), $this->phalApiRedis->get($key)); | 
|     } | 
|   | 
|     /** | 
|      * @group testLPush | 
|      */  | 
|     public function testLPush() | 
|     { | 
|         $key = 'testLPushKey'; | 
|   | 
|         $this->phalApiRedis->delete($key); | 
|   | 
|         $rs = $this->phalApiRedis->lPush($key, 1); | 
|         $this->assertEquals(1, $rs); | 
|         $rs = $this->phalApiRedis->lPush($key, 2); | 
|         $this->assertEquals(2, $rs); | 
|         $rs = $this->phalApiRedis->lPush($key, 3); | 
|         $this->assertEquals(3, $rs); | 
|     } | 
|   | 
|     /** | 
|      * @group testRPush | 
|      */  | 
|     public function testRPush() | 
|     { | 
|         $key = 'testRPushKey'; | 
|   | 
|         $this->phalApiRedis->delete($key); | 
|   | 
|         $rs = $this->phalApiRedis->rPush($key, 1); | 
|         $this->assertEquals(1, $rs); | 
|         $rs = $this->phalApiRedis->rPush($key, 'haha~'); | 
|         $this->assertEquals(2, $rs); | 
|         $rs = $this->phalApiRedis->rPush($key, true); | 
|         $this->assertEquals(3, $rs); | 
|         $rs = $this->phalApiRedis->rPush($key, array('name' => 'phalapi')); | 
|         $this->assertEquals(4, $rs); | 
|     } | 
|   | 
|     /** | 
|      * @group testLPop | 
|      */  | 
|     public function testLPop() | 
|     { | 
|         $key = 'testLPushKey'; | 
|   | 
|         $rs = $this->phalApiRedis->lPop($key); | 
|         $this->assertEquals(3, $rs); | 
|         $rs = $this->phalApiRedis->lPop($key); | 
|         $this->assertEquals(2, $rs); | 
|         $rs = $this->phalApiRedis->lPop($key); | 
|         $this->assertEquals(1, $rs); | 
|   | 
|         $rs = $this->phalApiRedis->lPop($key); | 
|         $this->assertEquals(NULL, $rs); | 
|     } | 
|   | 
|     /** | 
|      * @group testRPop | 
|      */  | 
|     public function testRPop() | 
|     { | 
|         $key = 'testRPushKey'; | 
|   | 
|         $rs = $this->phalApiRedis->rPop($key); | 
|         $this->assertSame(array('name' => 'phalapi'), $rs); | 
|         $rs = $this->phalApiRedis->rPop($key); | 
|         $this->assertSame(true, $rs); | 
|         $rs = $this->phalApiRedis->rPop($key); | 
|         $this->assertSame('haha~', $rs); | 
|         $rs = $this->phalApiRedis->rPop($key); | 
|         $this->assertSame(1, $rs); | 
|   | 
|         $rs = $this->phalApiRedis->rPop($key); | 
|         $this->assertSame(NULL, $rs); | 
|     } | 
|   | 
|     public function testPushAndPop() | 
|     { | 
|         $key = 'testPushAndPopKey'; | 
|   | 
|         $this->phalApiRedis->delete($key); | 
|   | 
|         $this->phalApiRedis->rPush($key, 'www'); | 
|         $this->phalApiRedis->rPush($key, 'phalapi'); | 
|         $this->phalApiRedis->rPush($key, 'net'); | 
|   | 
|         $this->assertEquals('www', $this->phalApiRedis->lPop($key)); | 
|         $this->assertEquals('phalapi', $this->phalApiRedis->lPop($key)); | 
|         $this->assertEquals('net', $this->phalApiRedis->lPop($key)); | 
|     } | 
| } |