<?php
							 | 
						|
								class CacheTest extends PHPUnit_Framework_TestCase {
							 | 
						|
								
							 | 
						|
								  public function testCreateFromConfig() {
							 | 
						|
								    p3k\Cache::redis('tcp://127.0.0.1:6379');
							 | 
						|
								    p3k\Cache::set('foo', 'bar');
							 | 
						|
								    $this->assertEquals('bar', p3k\Cache::get('foo'));
							 | 
						|
								    p3k\Cache::reset();
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testAutoCreate() {
							 | 
						|
								    p3k\Cache::set('foo', 'bar');
							 | 
						|
								    $this->assertEquals('bar', p3k\Cache::get('foo'));
							 | 
						|
								    p3k\Cache::reset();
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testSet() {
							 | 
						|
								    p3k\Cache::set('foo', 'bar', 0);
							 | 
						|
								    $this->assertEquals('bar', p3k\Cache::get('foo'));
							 | 
						|
								    $redis = p3k\Cache::redis();
							 | 
						|
								    $this->assertEquals(-1, $redis->ttl('foo'));
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testSetEx() {
							 | 
						|
								    p3k\Cache::set('foo', 'bar', 600);
							 | 
						|
								    $this->assertEquals('bar', p3k\Cache::get('foo'));
							 | 
						|
								    $redis = p3k\Cache::redis();
							 | 
						|
								    $this->assertGreaterThan(500, $redis->ttl('foo'));
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testGetExpired() {
							 | 
						|
								    p3k\Cache::set('foo', 'bar', 1);
							 | 
						|
								    usleep(1100000);
							 | 
						|
								    $this->assertEquals('default', p3k\Cache::get('foo', 'default'));
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testDelete() {
							 | 
						|
								    p3k\Cache::set('foo', 'bar', 600);
							 | 
						|
								    $this->assertEquals('bar', p3k\Cache::get('foo'));
							 | 
						|
								    p3k\Cache::delete('foo');
							 | 
						|
								    $this->assertEquals('default', p3k\Cache::get('foo', 'default'));
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testExpire() {
							 | 
						|
								    p3k\Cache::set('foo', 'bar', 600);
							 | 
						|
								    $this->assertEquals('bar', p3k\Cache::get('foo'));
							 | 
						|
								    p3k\Cache::expire('foo');
							 | 
						|
								    $this->assertEquals('default', p3k\Cache::get('foo', 'default'));
							 | 
						|
								
							 | 
						|
								    p3k\Cache::set('foo', 'bar', 600);
							 | 
						|
								    $this->assertEquals('bar', p3k\Cache::get('foo'));
							 | 
						|
								    p3k\Cache::expire('foo', 1);
							 | 
						|
								    usleep(1100000);
							 | 
						|
								    $this->assertEquals('default', p3k\Cache::get('foo', 'default'));
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testIncr() {
							 | 
						|
								    p3k\Cache::delete('test1');
							 | 
						|
								    p3k\Cache::incr('test1');
							 | 
						|
								    $this->assertEquals(1, p3k\Cache::get('test1'));
							 | 
						|
								
							 | 
						|
								    p3k\Cache::set('test2', 10);
							 | 
						|
								    p3k\Cache::incr('test2');
							 | 
						|
								    $this->assertEquals(11, p3k\Cache::get('test2'));
							 | 
						|
								
							 | 
						|
								    p3k\Cache::set('test3', 10);
							 | 
						|
								    p3k\Cache::incr('test3', 4);
							 | 
						|
								    $this->assertEquals(14, p3k\Cache::get('test3'));
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  public function testDecr() {
							 | 
						|
								    p3k\Cache::delete('test4');
							 | 
						|
								    p3k\Cache::decr('test4');
							 | 
						|
								    $this->assertEquals(-1, p3k\Cache::get('test4'));
							 | 
						|
								
							 | 
						|
								    p3k\Cache::set('test5', 10);
							 | 
						|
								    p3k\Cache::decr('test5');
							 | 
						|
								    $this->assertEquals(9, p3k\Cache::get('test5'));
							 | 
						|
								
							 | 
						|
								    p3k\Cache::set('test6', 10);
							 | 
						|
								    p3k\Cache::decr('test6', 4);
							 | 
						|
								    $this->assertEquals(6, p3k\Cache::get('test6'));
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								}
							 |