@@ -11,7 +11,7 @@ our @EXPORT = qw(protocol_redis_ok);
11
11
use Test::More;
12
12
require Carp;
13
13
14
- sub protocol_redis_ok ($$) {
14
+ sub protocol_redis_ok {
15
15
my ($redis_class , $api_version ) = @_ ;
16
16
17
17
if ($api_version == 1) {
@@ -30,31 +30,32 @@ sub _apiv1_ok {
30
30
31
31
use_ok $redis_class ;
32
32
33
- # Version 1 protocol
34
- my $redis = new_ok $redis_class , [api => 1];
33
+ _test_version_1($redis_class );
35
34
36
- can_ok $redis , ' parse' , ' api' , ' on_message' , ' encode' ;
35
+ _test_unknown_version($redis_class );
36
+ }
37
+ }
38
+
39
+ sub _test_version_1 {
40
+ my $redis_class = shift ;
41
+
42
+ my $redis = new_ok $redis_class , [api => 1];
37
43
38
- is $redis -> api, 1 , ' $redis-> api' ;
44
+ can_ok $redis , ' parse ' , ' api' , ' on_message ' , ' encode ' ;
39
45
40
- # Parsing method tests
41
- $redis -> on_message(undef );
42
- _parse_string_ok($redis );
43
- _parse_bulk_ok($redis );
44
- _parse_multi_bulk_ok($redis );
46
+ is $redis -> api, 1, ' $redis->api' ;
45
47
46
- # on_message works
47
- _on_message_ok($redis );
48
+ # Parsing method tests
49
+ $redis -> on_message(undef );
50
+ _parse_string_ok($redis );
51
+ _parse_bulk_ok($redis );
52
+ _parse_multi_bulk_ok($redis );
48
53
49
- # Encoding method tests
50
- _encode_ok ($redis );
54
+ # on_message works
55
+ _on_message_ok ($redis );
51
56
52
- # Unknown version should raise an exception
53
- eval {
54
- new($redis_class , api => 0);
55
- };
56
- ok($@ , ' unknown version raises an exception' );
57
- }
57
+ # Encoding method tests
58
+ _encode_ok($redis );
58
59
}
59
60
60
61
sub _parse_string_ok {
@@ -124,8 +125,7 @@ sub _parse_bulk_ok {
124
125
$redis -> parse(" \$ -1\r\n " );
125
126
126
127
my $message = $redis -> get_message;
127
- ok defined ($message ) && !defined ($message -> {data }),
128
- ' nil bulk message' ;
128
+ ok defined ($message ) && !defined ($message -> {data }), ' nil bulk message' ;
129
129
130
130
# Two chunked bulk messages
131
131
$redis -> parse(join (" \r\n " , ' $4' , ' test' , ' +OK' ));
@@ -156,8 +156,8 @@ sub _parse_multi_bulk_ok {
156
156
$redis -> parse(" \$ 5\r\n test2\r\n " );
157
157
$redis -> parse(" \$ 5\r\n test3\r\n " );
158
158
159
- is_deeply $redis -> get_message,
160
- { type => ' *' ,
159
+ is_deeply $redis -> get_message, {
160
+ type => ' *' ,
161
161
data => [
162
162
{type => ' $' , data => ' test1' },
163
163
{type => ' $' , data => ' test2' },
@@ -184,8 +184,8 @@ sub _parse_multi_bulk_ok {
184
184
185
185
# Multi bulk message with status items
186
186
$redis -> parse(join (" \r\n " , (' *2' , ' +OK' , ' $4' , ' test' ), ' ' ));
187
- is_deeply $redis -> get_message,
188
- { type => ' *' ,
187
+ is_deeply $redis -> get_message, {
188
+ type => ' *' ,
189
189
data => [{type => ' +' , data => ' OK' }, {type => ' $' , data => ' test' }]
190
190
};
191
191
@@ -210,7 +210,7 @@ sub _parse_multi_bulk_ok {
210
210
{type => ' $' , data => ' test2' },
211
211
{type => ' $' , data => ' test3' }
212
212
]
213
- };
213
+ };
214
214
215
215
# Complex string
216
216
$redis -> parse(" \* 4\r\n " );
@@ -224,11 +224,11 @@ sub _parse_multi_bulk_ok {
224
224
{type => ' :' , data => 42},
225
225
{type => ' +' , data => ' test3' }
226
226
]
227
- };
227
+ };
228
228
is_deeply $redis -> get_message, {
229
229
type => ' $' ,
230
230
data => ' 12345' ,
231
- };
231
+ };
232
232
233
233
# pipelined multi-bulk
234
234
$redis -> parse(
@@ -237,8 +237,8 @@ sub _parse_multi_bulk_ok {
237
237
(' *1' , ' $3' , ' ok3' ), ' ' )
238
238
);
239
239
240
- is_deeply $redis -> get_message,
241
- { type => ' *' ,
240
+ is_deeply $redis -> get_message, {
241
+ type => ' *' ,
242
242
data => [{type => ' $' , data => ' ok1' }, {type => ' $' , data => ' ok2' }]
243
243
};
244
244
is_deeply $redis -> get_message,
@@ -299,8 +299,8 @@ sub _encode_ok {
299
299
join (" \r\n " , (' *1' , ' $4' , ' test' ), ' ' ),
300
300
' encode multi-bulk' ;
301
301
302
- is $redis -> encode(
303
- { type => ' *' ,
302
+ is $redis -> encode({
303
+ type => ' *' ,
304
304
data => [
305
305
{type => ' $' , data => ' test1' }, {type => ' $' , data => ' test2' }
306
306
]
@@ -315,8 +315,8 @@ sub _encode_ok {
315
315
is $redis -> encode({type => ' *' , data => undef }), " \* -1\r\n " ,
316
316
' encode nil multi-bulk' ;
317
317
318
- is $redis -> encode(
319
- { type => ' *' ,
318
+ is $redis -> encode({
319
+ type => ' *' ,
320
320
data => [
321
321
{type => ' $' , data => ' foo' },
322
322
{type => ' $' , data => undef },
@@ -328,6 +328,13 @@ sub _encode_ok {
328
328
' encode multi-bulk with nil element' ;
329
329
}
330
330
331
+ sub _test_unknown_version {
332
+ my $redis_class = shift ;
333
+
334
+ eval { new($redis_class , api => 0); };
335
+ ok($@ , ' unknown version raises an exception' );
336
+ }
337
+
331
338
1;
332
339
__END__
333
340
0 commit comments