d67a400db0af5dda242140fe081646d7dbc6ecd3
[ruby-mogilefs-client.git] / test / test_db_backend.rb
blobd67a400db0af5dda242140fe081646d7dbc6ecd3
1 # -*- encoding: binary -*-
2 require './test/setup'
4 class TestMogileFS__DbBackend < Test::Unit::TestCase
5   def setup
6     @my = FakeMysql.new
7     @mgmy = MogileFS::Mysql.new(:mysql => @my)
8     @mg = MogileFS::MogileFS.new(:db_backend => @mgmy, :domain => 'test')
9   end
11   def test_initialize
12     assert_equal 'test', @mg.domain
13     assert @mg.readonly?
14   end
16   def test_list_keys_block
17     expect_full = [ [ 'foo', 123, 2 ], [ 'bar', 456, 1 ] ]
18     expect_keys = [ [ 'foo', 'bar' ], 'bar' ]
19     @my.expect << expect_full
20     full = []
21     keys = @mg.list_keys('test') do |dkey,length,devcount|
22       full << [ dkey, length, devcount ]
23     end
24     assert_equal expect_keys, keys
25     assert_equal expect_full, full
26   end
28   def test_list_keys
29     expect_full = [ [ 'foo', 123, 2 ], [ 'bar', 456, 1 ] ]
30     expect_keys = [ [ 'foo', 'bar' ], 'bar' ]
31     @my.expect << expect_full
32     keys = @mg.list_keys('test')
33     assert_equal expect_keys, keys
34   end
36   def test_size
37     @my.expect << [ [ '123' ] ]
38     assert_equal 123, @mg.size('foo')
40     @my.expect << [ [ '456' ] ]
41     assert_equal 456, @mg.size('foo')
42   end
44   def test_store_file_readonly
45     assert_raises(MogileFS::ReadOnlyError) do
46       @mg.store_file 'new_key', 'test', '/dev/null'
47     end
48   end
50   def test_store_content_readonly
51     assert_raises(MogileFS::ReadOnlyError) do
52       @mg.store_content 'new_key', 'test', 'data'
53     end
54   end
56   def test_new_file_readonly
57     assert_raises(MogileFS::ReadOnlyError) { @mg.new_file 'new_key', 'test' }
58   end
60   def test_rename_readonly
61     assert_raises(MogileFS::ReadOnlyError) { @mg.rename 'a', 'b' }
62   end
64   def test_delete_readonly
65     assert_raises(MogileFS::ReadOnlyError) { @mg.delete 'no_such_key' }
66   end
68   def test_sleep
69     assert_nothing_raised { assert_equal({}, @mg.sleep(1)) }
70   end
72 end