Skip to content

Commit 69d63b4

Browse files
authored
Merge pull request #103 from syffer/fix-xget-methods-should-return-string-values
Fix xget() methods should return string values
2 parents 800b0ac + 6f46e0d commit 69d63b4

File tree

2 files changed

+42
-23
lines changed

2 files changed

+42
-23
lines changed

src/M6Web/Component/RedisMock/RedisMock.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public function get($key)
7474
return $this->returnPipedInfo(null);
7575
}
7676

77-
return $this->returnPipedInfo(self::$dataValues[$this->storage][$key]);
77+
return $this->returnPipedInfo((string) self::$dataValues[$this->storage][$key]);
7878
}
7979

8080
public function set($key, $value, $seconds = null)
@@ -215,7 +215,7 @@ public function incrbyfloat($key, $increment)
215215

216216
self::$dataTypes[$this->storage][$key] = 'string';
217217

218-
return $this->returnPipedInfo(self::$dataValues[$this->storage][$key]);
218+
return $this->returnPipedInfo((string) self::$dataValues[$this->storage][$key]);
219219
}
220220

221221
public function decr($key)
@@ -254,7 +254,7 @@ public function decrbyfloat($key, $decrement)
254254

255255
self::$dataTypes[$this->storage][$key] = 'string';
256256

257-
return $this->returnPipedInfo(self::$dataValues[$this->storage][$key]);
257+
return $this->returnPipedInfo((string) self::$dataValues[$this->storage][$key]);
258258
}
259259

260260
// Keys
@@ -727,7 +727,7 @@ public function hget($key, $field)
727727
return $this->returnPipedInfo(null);
728728
}
729729

730-
return $this->returnPipedInfo(self::$dataValues[$this->storage][$key][$field]);
730+
return $this->returnPipedInfo((string) self::$dataValues[$this->storage][$key][$field]);
731731
}
732732

733733
public function hmget($key, $fields)
@@ -737,7 +737,7 @@ public function hmget($key, $fields)
737737
if (!isset(self::$dataValues[$this->storage][$key][$field]) || $this->deleteOnTtlExpired($key)) {
738738
$result[$field] = null;
739739
} else {
740-
$result[$field] = self::$dataValues[$this->storage][$key][$field];
740+
$result[$field] = (string) self::$dataValues[$this->storage][$key][$field];
741741
}
742742
}
743743

@@ -799,7 +799,11 @@ public function hgetall($key)
799799
return $this->returnPipedInfo(array());
800800
}
801801

802-
return $this->returnPipedInfo(self::$dataValues[$this->storage][$key]);
802+
$values = [];
803+
foreach (self::$dataValues[$this->storage][$key] as $index => $value) {
804+
$values[$index] = (string) $value;
805+
}
806+
return $this->returnPipedInfo($values);
803807
}
804808

805809
public function hexists($key, $field)

tests/units/RedisMock.php

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,13 @@ public function testSetGetDelExists()
105105
->integer($redisMock->exists('test'))
106106
->isEqualTo(0);
107107

108+
//set with integer
109+
$this->assert
110+
->string($redisMock->set('test-setting-integer-value', 2))
111+
->isEqualTo('OK')
112+
->string($redisMock->get('test-setting-integer-value'))
113+
->isEqualTo('2');
114+
108115
//setnx
109116
$this->assert
110117
->integer($redisMock->setnx('test-setnx', 'lala'))
@@ -239,7 +246,7 @@ public function testIncr()
239246
->isNull()
240247
->integer($redisMock->incr('test'))
241248
->isEqualTo(1)
242-
->integer($redisMock->get('test'))
249+
->string($redisMock->get('test'))
243250
->isEqualTo(1)
244251
->string($redisMock->type('test'))
245252
->isEqualTo('string')
@@ -274,7 +281,7 @@ public function testIncrby()
274281
->isNull()
275282
->integer($redisMock->incrby('test', 5))
276283
->isEqualTo(5)
277-
->integer($redisMock->get('test'))
284+
->string($redisMock->get('test'))
278285
->isEqualTo(5)
279286
->string($redisMock->type('test'))
280287
->isEqualTo('string')
@@ -307,15 +314,15 @@ public function testIncrbyfloat()
307314
$this->assert
308315
->variable($redisMock->get('test'))
309316
->isNull()
310-
->float($redisMock->incrbyfloat('test', 0.5))
317+
->string($redisMock->incrbyfloat('test', 0.5))
311318
->isEqualTo(0.5)
312-
->float($redisMock->get('test'))
319+
->string($redisMock->get('test'))
313320
->isEqualTo(0.5)
314321
->string($redisMock->type('test'))
315322
->isEqualTo('string')
316-
->float($redisMock->incrbyfloat('test', 1))
323+
->string($redisMock->incrbyfloat('test', 1))
317324
->isEqualTo(1.5)
318-
->float($redisMock->incrbyfloat('test', 2.5))
325+
->string($redisMock->incrbyfloat('test', 2.5))
319326
->isEqualTo(4)
320327
->string($redisMock->set('test', 'something'))
321328
->isEqualTo('OK')
@@ -325,13 +332,13 @@ public function testIncrbyfloat()
325332
->isEqualTo(1)
326333
->string($redisMock->type('test'))
327334
->isEqualTo('none')
328-
->float($redisMock->incrbyfloat('test', 0.5))
335+
->string($redisMock->incrbyfloat('test', 0.5))
329336
->isEqualTo(0.5)
330337
->integer($redisMock->expire('test', 1))
331338
->isEqualTo(1);
332339
sleep(2);
333340
$this->assert
334-
->float($redisMock->incrbyfloat('test', 0.5))
341+
->string($redisMock->incrbyfloat('test', 0.5))
335342
->isEqualTo(0.5);
336343
}
337344

@@ -344,7 +351,7 @@ public function testDecr()
344351
->isNull()
345352
->integer($redisMock->decr('test'))
346353
->isEqualTo(-1)
347-
->integer($redisMock->get('test'))
354+
->string($redisMock->get('test'))
348355
->isEqualTo(-1)
349356
->string($redisMock->type('test'))
350357
->isEqualTo('string')
@@ -379,7 +386,7 @@ public function testDecrby()
379386
->isNull()
380387
->integer($redisMock->decrby('test', 5))
381388
->isEqualTo(-5)
382-
->integer($redisMock->get('test'))
389+
->string($redisMock->get('test'))
383390
->isEqualTo(-5)
384391
->string($redisMock->type('test'))
385392
->isEqualTo('string')
@@ -412,15 +419,15 @@ public function testDecrbyfloat()
412419
$this->assert
413420
->variable($redisMock->get('test'))
414421
->isNull()
415-
->float($redisMock->decrbyfloat('test', 0.5))
422+
->string($redisMock->decrbyfloat('test', 0.5))
416423
->isEqualTo(-0.5)
417-
->float($redisMock->get('test'))
424+
->string($redisMock->get('test'))
418425
->isEqualTo(-0.5)
419426
->string($redisMock->type('test'))
420427
->isEqualTo('string')
421-
->float($redisMock->decrbyfloat('test', 1))
428+
->string($redisMock->decrbyfloat('test', 1))
422429
->isEqualTo(-1.5)
423-
->float($redisMock->decrbyfloat('test', 2.5))
430+
->string($redisMock->decrbyfloat('test', 2.5))
424431
->isEqualTo(-4.0)
425432
->string($redisMock->set('test', 'something'))
426433
->isEqualTo('OK')
@@ -430,13 +437,13 @@ public function testDecrbyfloat()
430437
->isEqualTo(1)
431438
->string($redisMock->type('test'))
432439
->isEqualTo('none')
433-
->float($redisMock->decrbyfloat('test', 0.5))
440+
->string($redisMock->decrbyfloat('test', 0.5))
434441
->isEqualTo(-0.5)
435442
->integer($redisMock->expire('test', 1))
436443
->isEqualTo(1);
437444
sleep(2);
438445
$this->assert
439-
->float($redisMock->decrbyfloat('test', 0.5))
446+
->string($redisMock->decrbyfloat('test', 0.5))
440447
->isEqualTo(-0.5);
441448
}
442449

@@ -1311,6 +1318,14 @@ public function testHSetHMSetHGetHDelHExistsHKeysHLenHGetAll()
13111318
->isEqualTo(0)
13121319
->integer($redisMock->del('test'))
13131320
->isEqualTo(2)
1321+
->integer($redisMock->hset('test-hset-integer-value', 'integer-value', 100))
1322+
->isEqualTo(1)
1323+
->string($redisMock->hget('test-hset-integer-value', 'integer-value'))
1324+
->isEqualTo('100')
1325+
->array($redisMock->hgetall('test-hset-integer-value'))
1326+
->isEqualTo([
1327+
'integer-value' => '100',
1328+
])
13141329
->integer($redisMock->hset('test', 'test1', 'something'))
13151330
->isEqualTo(1)
13161331
->integer($redisMock->hset('test', 'test2', 'something else'))
@@ -1480,7 +1495,7 @@ public function testHincrby()
14801495
->isNull()
14811496
->integer($redisMock->hincrby('test', 'count', 5))
14821497
->isEqualTo(5)
1483-
->integer($redisMock->hget('test', 'count'))
1498+
->string($redisMock->hget('test', 'count'))
14841499
->isEqualTo(5)
14851500
->integer($redisMock->hincrby('test', 'count', 1))
14861501
->isEqualTo(6)

0 commit comments

Comments
 (0)