-
Notifications
You must be signed in to change notification settings - Fork 89
/
reader_test.rb
59 lines (48 loc) · 1.25 KB
/
reader_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
require 'test/unit'
require 'redis_ext'
class ReaderTest < Test::Unit::TestCase
def setup
@reader = RedisExt::Reader.new
end
def test_nil
@reader.feed("$-1\r\n")
assert_equal nil, @reader.gets
end
def test_integer
value = 2**63-1 # largest 64-bit signed integer
@reader.feed(":#{value.to_s}\r\n")
assert_equal value, @reader.gets
end
def test_status_string
@reader.feed("+status\r\n")
assert_equal "status", @reader.gets
end
def test_error_string
@reader.feed("-error\r\n")
assert_equal "error", @reader.gets
end
def test_empty_bulk_string
@reader.feed("$0\r\n\r\n")
assert_equal "", @reader.gets
end
def test_bulk_string
@reader.feed("$5\r\nhello\r\n")
assert_equal "hello", @reader.gets
end
def test_null_multi_bulk
@reader.feed("*-1\r\n")
assert_equal nil, @reader.gets
end
def test_empty_multi_bulk
@reader.feed("*0\r\n")
assert_equal [], @reader.gets
end
def test_multi_bulk
@reader.feed("*2\r\n$5\r\nhello\r\n$5\r\nworld\r\n")
assert_equal ["hello", "world"], @reader.gets
end
def test_nested_multi_bulk
@reader.feed("*2\r\n*2\r\n$5\r\nhello\r\n$5\r\nworld\r\n$1\r\n!\r\n")
assert_equal [["hello", "world"], "!"], @reader.gets
end
end