1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/tests/rackspace/models/storage/file_tests.rb
Evan Smith 449b227f56 added support for Storage::Rackspace::File#metadata
Added rackspace/models/storage/file_tests.
Added tests for Fog::Storage::Rackspace::File#metadata
Added Fog::Rackspace::Storage::File#metadata
2012-11-05 14:44:31 -08:00

64 lines
No EOL
1.7 KiB
Ruby

Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do
file_attributes = {
:key => 'fog_file_tests',
:body => lorem_file
}
directory_attributes = {
# Add a random suffix to prevent collision
:key => "fogfilestests-#{rand(65536)}"
}
@directory = Fog::Storage[:rackspace].
directories.
create(directory_attributes)
model_tests(@directory.files, file_attributes, Fog.mocking?) do
tests("#metadata") do
tests("#metadata should default to empty").returns({}) do
@instance.metadata
end
@instance.attributes['X-Object-Meta-Fog-Foo'] = 'foo'
tests("#metadata should return only metadata attributes").returns({'X-Object-Meta-Fog-Foo' => 'foo'}) do
@instance.metadata
end
@instance.attributes.delete('X-Object-Meta-Fog-Foo')
@instance.attributes['X-Object-Meta-Fog-Foo'] = 'foo'
tests("#metadata= should update metadata").returns('bar') do
@instance.metadata = {'X-Object-Meta-Fog-Foo' => 'bar'}
@instance.attributes['X-Object-Meta-Fog-Foo']
end
tests("#metadata= should not blow up on nil") do
@instance.metadata = nil
end
end
end
model_tests(@directory.files, file_attributes.merge('X-Object-Meta-Fog-Foo' => 'foo'), Fog.mocking?) do
tests("#save") do
tests("#save should merge metadata").returns('foo') do
@instance.metadata['X-Object-Meta-Fog-Foo']
end
@instance.attributes['X-Object-Meta-Fog-Foo'] = nil
tests("#save should remove empty metadata").returns(false) do
@instance.save
@instance.attributes.has_key?('X-Object-Meta-Fog-Foo')
end
end
end
@directory.destroy
end