1 # -*- encoding: binary -*-
3 require 'mogilefs/mysql'
5 class TestMogileFS__DbBackend < Test::Unit::TestCase
8 @mgmy = MogileFS::Mysql.new(:mysql => @my)
9 @mg = MogileFS::MogileFS.new(:db_backend => @mgmy, :domain => 'test')
13 assert_equal 'test', @mg.domain
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
22 keys = @mg.list_keys('test') do |dkey,length,devcount|
23 full << [ dkey, length, devcount ]
25 assert_equal expect_keys, keys
26 assert_equal expect_full, full
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
38 @my.expect << [ [ '123' ] ]
39 assert_equal 123, @mg.size('foo')
41 @my.expect << [ [ '456' ] ]
42 assert_equal 456, @mg.size('foo')
45 def test_store_file_readonly
46 assert_raises(MogileFS::ReadOnlyError) do
47 @mg.store_file 'new_key', 'test', '/dev/null'
51 def test_store_content_readonly
52 assert_raises(MogileFS::ReadOnlyError) do
53 @mg.store_content 'new_key', 'test', 'data'
57 def test_new_file_readonly
58 assert_raises(MogileFS::ReadOnlyError) { @mg.new_file 'new_key', 'test' }
61 def test_rename_readonly
62 assert_raises(MogileFS::ReadOnlyError) { @mg.rename 'a', 'b' }
65 def test_delete_readonly
66 assert_raises(MogileFS::ReadOnlyError) { @mg.delete 'no_such_key' }
70 assert_nothing_raised { assert_equal({}, @mg.sleep(1)) }