refactor httpfile and remove layering violation
[ruby-mogilefs-client.git] / test / test_db_backend.rb
blobf56300b8dad60981dfd16732e0b31053d3e3a93d
1 # -*- encoding: binary -*-
2 require './test/setup'
3 require 'mogilefs/mysql'
5 class TestMogileFS__DbBackend < Test::Unit::TestCase
6   def setup
7     @my = FakeMysql.new
8     @mgmy = MogileFS::Mysql.new(:mysql => @my)
9     @mg = MogileFS::MogileFS.new(:db_backend => @mgmy, :domain => 'test')
10   end
12   def test_initialize
13     assert_equal 'test', @mg.domain
14     assert @mg.readonly?
15   end
17   def test_list_keys_block
18     expect_full = [ [ 'foo', 123, 2 ], [ 'bar', 456, 1 ] ]
19     expect_keys = [ [ 'foo', 'bar' ], 'bar' ]
20     @my.expect << expect_full
21     full = []
22     keys = @mg.list_keys('test') do |dkey,length,devcount|
23       full << [ dkey, length, devcount ]
24     end
25     assert_equal expect_keys, keys
26     assert_equal expect_full, full
27   end
29   def test_list_keys
30     expect_full = [ [ 'foo', 123, 2 ], [ 'bar', 456, 1 ] ]
31     expect_keys = [ [ 'foo', 'bar' ], 'bar' ]
32     @my.expect << expect_full
33     keys = @mg.list_keys('test')
34     assert_equal expect_keys, keys
35   end
37   def test_size
38     @my.expect << [ [ '123' ] ]
39     assert_equal 123, @mg.size('foo')
41     @my.expect << [ [ '456' ] ]
42     assert_equal 456, @mg.size('foo')
43   end
45   def test_store_file_readonly
46     assert_raises(MogileFS::ReadOnlyError) do
47       @mg.store_file 'new_key', 'test', '/dev/null'
48     end
49   end
51   def test_store_content_readonly
52     assert_raises(MogileFS::ReadOnlyError) do
53       @mg.store_content 'new_key', 'test', 'data'
54     end
55   end
57   def test_new_file_readonly
58     assert_raises(MogileFS::ReadOnlyError) { @mg.new_file 'new_key', 'test' }
59   end
61   def test_rename_readonly
62     assert_raises(MogileFS::ReadOnlyError) { @mg.rename 'a', 'b' }
63   end
65   def test_delete_readonly
66     assert_raises(MogileFS::ReadOnlyError) { @mg.delete 'no_such_key' }
67   end
69   def test_sleep
70     assert_nothing_raised { assert_equal({}, @mg.sleep(1)) }
71   end
73 end