6 attr_accessor :read_data
10 self.class.read_data.shift
15 class TestMogileFS__MogileFS < TestMogileFS
18 @klass = MogileFS::MogileFS
23 assert_equal 'test', @client.domain
24 assert_equal '/mogilefs/test', @client.root
26 assert_raises ArgumentError do
27 MogileFS::MogileFS.new :hosts => ['kaa:6001'], :root => '/mogilefs/test'
31 def test_get_file_data_http
32 URI::HTTP.read_data = %w[data!]
34 path1 = 'http://rur-1/dev1/0/000/000/0000000062.fid'
35 path2 = 'http://rur-2/dev2/0/000/000/0000000062.fid'
37 @backend.get_paths = { 'paths' => 2, 'path1' => path1, 'path2' => path2 }
39 assert_equal 'data!', @client.get_file_data('key')
43 path1 = 'rur-1/dev1/0/000/000/0000000062.fid'
44 path2 = 'rur-2/dev2/0/000/000/0000000062.fid'
46 @backend.get_paths = { 'paths' => 2, 'path1' => path1, 'path2' => path2 }
48 expected = ["#{@root}/#{path1}", "#{@root}/#{path2}"]
50 assert_equal expected, @client.get_paths('key').sort
53 def test_get_paths_unknown_key
54 @backend.get_paths = ['unknown_key', '']
56 assert_equal nil, @client.get_paths('key')
59 def test_delete_existing
61 assert_nothing_raised do
62 @client.delete 'no_such_key'
66 def test_delete_nonexisting
67 @backend.delete = 'unknown_key', ''
68 assert_nothing_raised do
69 assert_equal nil, @client.delete('no_such_key')
73 def test_delete_readonly
74 @client.readonly = true
75 assert_raises RuntimeError do
76 @client.delete 'no_such_key'
81 @backend.list_keys = { 'key_count' => 2, 'next_after' => 'new_key_2',
82 'key_1' => 'new_key_1', 'key_2' => 'new_key_2' }
83 @backend.list_keys = { 'key_count' => 2, 'next_after' => 'new_key_4',
84 'key_1' => 'new_key_3', 'key_2' => 'new_key_4' }
85 @backend.list_keys = { 'key_count' => 0, 'next_after' => 'new_key_4' }
87 @client.each_key 'new' do |key|
91 assert_equal %w[new_key_1 new_key_2 new_key_3 new_key_4], keys
95 @backend.list_keys = { 'key_count' => 2, 'next_after' => 'new_key_2',
96 'key_1' => 'new_key_1', 'key_2' => 'new_key_2' }
98 keys, next_after = @client.list_keys 'new'
99 assert_equal ['new_key_1', 'new_key_2'], keys.sort
100 assert_equal 'new_key_2', next_after
103 def test_new_file_http
104 @client.readonly = true
105 assert_raises RuntimeError do
106 @client.new_file 'new_key', 'test'
110 def test_new_file_readonly
111 @client.readonly = true
112 assert_raises RuntimeError do
113 @client.new_file 'new_key', 'test'
117 def test_store_content_readonly
118 @client.readonly = true
119 assert_raises RuntimeError do
120 @client.store_content 'new_key', 'test', nil
124 def test_store_file_readonly
125 @client.readonly = true
126 assert_raises RuntimeError do
127 @client.store_file 'new_key', 'test', nil
131 def test_rename_existing
133 assert_nothing_raised do
134 assert_equal(nil, @client.rename('from_key', 'to_key'))
138 def test_rename_nonexisting
139 @backend.rename = 'unknown_key', ''
140 assert_nothing_raised do
141 assert_equal(nil, @client.rename('from_key', 'to_key'))
145 def test_rename_readonly
146 @client.readonly = true
147 assert_raises RuntimeError do
148 @client.rename 'new_key', 'test'
154 assert_nothing_raised do
155 assert_equal({}, @client.sleep(2))