Skip to content

Commit 48cf756

Browse files
committed
add redis tests
1 parent cacadac commit 48cf756

4 files changed

Lines changed: 324 additions & 1 deletion

File tree

‎.travis.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ language: php
33
php:
44
- 7.2
55

6+
services:
7+
- redis-server
8+
69
env:
710
- DB=mysql
811

‎tests/DatabaseEncryptionTest.php‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use Exception;
88
use PHPUnit\Framework\TestCase;
99
use Rancoud\Database\Configurator;
10-
use Rancoud\Session\Database;
1110
use Rancoud\Session\DatabaseEncryption;
1211

1312
/**

‎tests/RedisEncryptionTest.php‎

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Rancoud\Session\Test;
6+
7+
use PHPUnit\Framework\TestCase;
8+
use Predis\Client as Predis;
9+
use Rancoud\Session\RedisEncryption;
10+
11+
/**
12+
* Class RedisEncryptionTest.
13+
*/
14+
class RedisEncryptionTest extends TestCase
15+
{
16+
/** @var \Predis\Client */
17+
private static $redis;
18+
19+
public static function setUpBeforeClass()
20+
{
21+
$params = [
22+
'scheme' => 'tcp',
23+
'host' => '127.0.0.1',
24+
'port' => 6379,
25+
];
26+
static::$redis = new Predis($params);
27+
static::$redis->flushdb();
28+
}
29+
30+
protected function setUp()
31+
{
32+
static::$redis->flushdb();
33+
}
34+
35+
public function testOpen()
36+
{
37+
$redis = new RedisEncryption();
38+
$redis->setKey('randomKey');
39+
40+
$redis->setCurrentRedis(static::$redis);
41+
42+
$savePath = '';
43+
$sessionName = '';
44+
$success = $redis->open($savePath, $sessionName);
45+
static::assertTrue($success);
46+
}
47+
48+
public function testClose()
49+
{
50+
$redis = new RedisEncryption();
51+
$redis->setKey('randomKey');
52+
53+
$redis->setCurrentRedis(static::$redis);
54+
$success = $redis->close();
55+
static::assertTrue($success);
56+
}
57+
58+
public function testWrite()
59+
{
60+
$redis = new RedisEncryption();
61+
$redis->setKey('randomKey');
62+
63+
$redis->setCurrentRedis(static::$redis);
64+
65+
$sessionId = 'sessionId';
66+
$data = 'azerty';
67+
$success = $redis->write($sessionId, $data);
68+
static::assertTrue($success);
69+
70+
$dataInRedis = static::$redis->get($sessionId);
71+
static::assertNotEquals($data, $dataInRedis);
72+
73+
$encryptionTrait = $this->getObjectForTrait('Rancoud\Session\Encryption');
74+
$encryptionTrait->setKey('randomKey');
75+
$dataInRedisDecrypted = $encryptionTrait->decrypt($dataInRedis);
76+
static::assertEquals($data, $dataInRedisDecrypted);
77+
}
78+
79+
public function testRead()
80+
{
81+
$redis = new RedisEncryption();
82+
$redis->setKey('randomKey');
83+
84+
$redis->setCurrentRedis(static::$redis);
85+
86+
$sessionId = 'sessionId';
87+
$data = 'azerty';
88+
$success = $redis->write($sessionId, $data);
89+
static::assertTrue($success);
90+
91+
$dataOutput = $redis->read($sessionId);
92+
static::assertTrue(!empty($dataOutput));
93+
static::assertTrue(is_string($dataOutput));
94+
static::assertEquals($data, $dataOutput);
95+
96+
$sessionId = '';
97+
$dataOutput = $redis->read($sessionId);
98+
static::assertTrue(empty($dataOutput));
99+
static::assertTrue(is_string($dataOutput));
100+
}
101+
102+
public function testDestroy()
103+
{
104+
$redis = new RedisEncryption();
105+
$redis->setKey('randomKey');
106+
107+
$redis->setCurrentRedis(static::$redis);
108+
109+
$sessionId = 'todelete';
110+
$success = $redis->destroy($sessionId);
111+
static::assertTrue($success);
112+
113+
$sessionId = 'sessionId';
114+
$data = 'azerty';
115+
$success = $redis->write($sessionId, $data);
116+
static::assertTrue($success);
117+
118+
$isKeyExist = static::$redis->exists($sessionId) === 1;
119+
static::assertTrue($isKeyExist);
120+
$success = $redis->destroy($sessionId);
121+
static::assertTrue($success);
122+
$isKeyNotExist = static::$redis->exists($sessionId) === 0;
123+
static::assertTrue($isKeyNotExist);
124+
}
125+
126+
public function testGc()
127+
{
128+
$redis = new RedisEncryption();
129+
$redis->setKey('randomKey');
130+
131+
$redis->setCurrentRedis(static::$redis);
132+
$redis->setLifetime(1);
133+
134+
$sessionId = 'sessionId';
135+
$data = 'azerty';
136+
$success = $redis->write($sessionId, $data);
137+
static::assertTrue($success);
138+
139+
$isKeyExist = static::$redis->exists($sessionId) === 1;
140+
static::assertTrue($isKeyExist);
141+
142+
sleep(2);
143+
144+
$lifetime = 0;
145+
$success = $redis->gc($lifetime);
146+
static::assertTrue($success);
147+
148+
$isKeyNotExist = static::$redis->exists($sessionId) === 0;
149+
static::assertTrue($isKeyNotExist);
150+
}
151+
152+
public function testSetNewRedis()
153+
{
154+
$redis = new RedisEncryption();
155+
$redis->setKey('randomKey');
156+
157+
$params = [
158+
'scheme' => 'tcp',
159+
'host' => '127.0.0.1',
160+
'port' => 6379,
161+
];
162+
$redis->setNewRedis($params);
163+
164+
$sessionId = 'sessionId';
165+
$data = 'azerty';
166+
167+
$success = $redis->write($sessionId, $data);
168+
static::assertTrue($success);
169+
}
170+
}

‎tests/RedisTest.php‎

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Rancoud\Session\Test;
6+
7+
use PHPUnit\Framework\TestCase;
8+
use Predis\Client as Predis;
9+
use Rancoud\Session\Redis;
10+
11+
/**
12+
* Class RedisTest.
13+
*/
14+
class RedisTest extends TestCase
15+
{
16+
/** @var \Predis\Client */
17+
private static $redis;
18+
19+
public static function setUpBeforeClass()
20+
{
21+
$params = [
22+
'scheme' => 'tcp',
23+
'host' => '127.0.0.1',
24+
'port' => 6379,
25+
];
26+
static::$redis = new Predis($params);
27+
static::$redis->flushdb();
28+
}
29+
30+
protected function setUp()
31+
{
32+
static::$redis->flushdb();
33+
}
34+
35+
public function testOpen()
36+
{
37+
$redis = new Redis();
38+
$redis->setCurrentRedis(static::$redis);
39+
40+
$savePath = '';
41+
$sessionName = '';
42+
$success = $redis->open($savePath, $sessionName);
43+
static::assertTrue($success);
44+
}
45+
46+
public function testClose()
47+
{
48+
$redis = new Redis();
49+
$redis->setCurrentRedis(static::$redis);
50+
$success = $redis->close();
51+
static::assertTrue($success);
52+
}
53+
54+
public function testWrite()
55+
{
56+
$redis = new Redis();
57+
$redis->setCurrentRedis(static::$redis);
58+
59+
$sessionId = 'sessionId';
60+
$data = 'azerty';
61+
$success = $redis->write($sessionId, $data);
62+
static::assertTrue($success);
63+
64+
$dataInRedis = static::$redis->get($sessionId);
65+
static::assertEquals($data, $dataInRedis);
66+
}
67+
68+
public function testRead()
69+
{
70+
$redis = new Redis();
71+
$redis->setCurrentRedis(static::$redis);
72+
73+
$sessionId = 'sessionId';
74+
$data = 'azerty';
75+
$success = $redis->write($sessionId, $data);
76+
static::assertTrue($success);
77+
78+
$dataOutput = $redis->read($sessionId);
79+
static::assertTrue(!empty($dataOutput));
80+
static::assertTrue(is_string($dataOutput));
81+
static::assertEquals($data, $dataOutput);
82+
83+
$sessionId = '';
84+
$dataOutput = $redis->read($sessionId);
85+
static::assertTrue(empty($dataOutput));
86+
static::assertTrue(is_string($dataOutput));
87+
}
88+
89+
public function testDestroy()
90+
{
91+
$redis = new Redis();
92+
$redis->setCurrentRedis(static::$redis);
93+
94+
$sessionId = 'todelete';
95+
$success = $redis->destroy($sessionId);
96+
static::assertTrue($success);
97+
98+
$sessionId = 'sessionId';
99+
$data = 'azerty';
100+
$success = $redis->write($sessionId, $data);
101+
static::assertTrue($success);
102+
103+
$isKeyExist = static::$redis->exists($sessionId) === 1;
104+
static::assertTrue($isKeyExist);
105+
$success = $redis->destroy($sessionId);
106+
static::assertTrue($success);
107+
$isKeyNotExist = static::$redis->exists($sessionId) === 0;
108+
static::assertTrue($isKeyNotExist);
109+
}
110+
111+
public function testGc()
112+
{
113+
$redis = new Redis();
114+
$redis->setCurrentRedis(static::$redis);
115+
$redis->setLifetime(1);
116+
117+
$sessionId = 'sessionId';
118+
$data = 'azerty';
119+
$success = $redis->write($sessionId, $data);
120+
static::assertTrue($success);
121+
122+
$isKeyExist = static::$redis->exists($sessionId) === 1;
123+
static::assertTrue($isKeyExist);
124+
125+
sleep(2);
126+
127+
$lifetime = 0;
128+
$success = $redis->gc($lifetime);
129+
static::assertTrue($success);
130+
131+
$isKeyNotExist = static::$redis->exists($sessionId) === 0;
132+
static::assertTrue($isKeyNotExist);
133+
}
134+
135+
public function testSetNewRedis()
136+
{
137+
$redis = new Redis();
138+
$params = [
139+
'scheme' => 'tcp',
140+
'host' => '127.0.0.1',
141+
'port' => 6379,
142+
];
143+
$redis->setNewRedis($params);
144+
145+
$sessionId = 'sessionId';
146+
$data = 'azerty';
147+
148+
$success = $redis->write($sessionId, $data);
149+
static::assertTrue($success);
150+
}
151+
}

0 commit comments

Comments
 (0)