@@ -1127,23 +1127,45 @@ public function testsPop()
11271127 }
11281128
11291129 public function testsRandMember () {
1130- $ this ->redis ->delete ('set0 ' );
1131- $ this ->assertTrue ($ this ->redis ->sRandMember ('set0 ' ) === FALSE );
1130+ $ this ->redis ->delete ('set0 ' );
1131+ $ this ->assertTrue ($ this ->redis ->sRandMember ('set0 ' ) === FALSE );
11321132
1133- $ this ->redis ->sAdd ('set0 ' , 'val ' );
1134- $ this ->redis ->sAdd ('set0 ' , 'val2 ' );
1133+ $ this ->redis ->sAdd ('set0 ' , 'val ' );
1134+ $ this ->redis ->sAdd ('set0 ' , 'val2 ' );
11351135
1136- $ got = array ();
1137- while (true ) {
1138- $ v = $ this ->redis ->sRandMember ('set0 ' );
1139- $ this ->assertTrue (2 === $ this ->redis ->sSize ('set0 ' )); // no change.
1140- $ this ->assertTrue ($ v === 'val ' || $ v === 'val2 ' );
1136+ $ got = array ();
1137+ while (true ) {
1138+ $ v = $ this ->redis ->sRandMember ('set0 ' );
1139+ $ this ->assertTrue (2 === $ this ->redis ->sSize ('set0 ' )); // no change.
1140+ $ this ->assertTrue ($ v === 'val ' || $ v === 'val2 ' );
11411141
1142- $ got [$ v ] = $ v ;
1143- if (count ($ got ) == 2 ) {
1144- break ;
1145- }
1146- }
1142+ $ got [$ v ] = $ v ;
1143+ if (count ($ got ) == 2 ) {
1144+ break ;
1145+ }
1146+ }
1147+
1148+ //
1149+ // With and without count, while serializing
1150+ //
1151+
1152+ $ this ->redis ->delete ('set0 ' );
1153+ $ this ->redis ->setOption (Redis::OPT_SERIALIZER , Redis::SERIALIZER_PHP );
1154+ for ($ i =0 ;$ i <5 ;$ i ++) {
1155+ $ member = "member: $ i " ;
1156+ $ this ->redis ->sAdd ('set0 ' , $ member );
1157+ $ mems [] = $ member ;
1158+ }
1159+
1160+ $ member = $ this ->redis ->srandmember ('set0 ' );
1161+ $ this ->assertTrue (in_array ($ member , $ mems ));
1162+
1163+ $ rmembers = $ this ->redis ->srandmember ('set0 ' , $ i );
1164+ foreach ($ rmembers as $ reply_mem ) {
1165+ $ this ->assertTrue (in_array ($ reply_mem , $ mems ));
1166+ }
1167+
1168+ $ this ->redis ->setOption (Redis::OPT_SERIALIZER , Redis::SERIALIZER_NONE );
11471169 }
11481170
11491171 public function testSRandMemberWithCount () {
0 commit comments