<?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)); 
 | 
    } 
 | 
} 
 |