mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
5eba7505a6
[aws|storage|test] Make sure tests pass with both mocking enabled and disabled.
56 lines
1.7 KiB
Ruby
56 lines
1.7 KiB
Ruby
Shindo.tests("Storage[:aws] | versions", [:aws]) do
|
|
|
|
file_attributes = {
|
|
:key => 'fog_file_tests',
|
|
:body => lorem_file,
|
|
:public => true
|
|
}
|
|
|
|
directory_attributes = {
|
|
:key => 'fogfilestests'
|
|
}
|
|
|
|
model_tests(Fog::Storage[:aws].directories, directory_attributes, Fog.mocking?) do
|
|
@instance.versioning = true
|
|
|
|
versions = []
|
|
versions << @instance.connection.put_object(@instance.key, 'one', 'abcde').headers['x-amz-version-id']
|
|
|
|
puts versions.first
|
|
|
|
versions << @instance.connection.put_object(@instance.key, 'one', '32423').headers['x-amz-version-id']
|
|
versions << @instance.connection.delete_object(@instance.key, 'one').headers['x-amz-version-id']
|
|
versions.reverse!
|
|
|
|
puts versions.first
|
|
|
|
versions << @instance.connection.put_object(@instance.key, 'two', 'aoeu').headers['x-amz-version-id']
|
|
|
|
tests('#versions') do
|
|
tests('#versions.size includes versions (including DeleteMarkers) for all keys').returns(4) do
|
|
@instance.versions.all.size
|
|
end
|
|
|
|
tests('#versions returns the correct versions').returns(versions) do
|
|
@instance.versions.all.collect(&:version)
|
|
end
|
|
end
|
|
|
|
tests("#all") do
|
|
tests("#all for a directory returns all versions, regardless of key").returns(versions) do
|
|
@instance.versions.all.collect(&:version)
|
|
end
|
|
|
|
tests("#all for file returns only versions for that file").returns(1) do
|
|
@instance.files.get('two').versions.all.collect(&:version).size
|
|
end
|
|
|
|
tests("#all for file returns only versions for that file").returns(versions.last) do
|
|
@instance.files.get('two').versions.all.collect(&:version).first
|
|
end
|
|
end
|
|
|
|
@instance.versions.each(&:destroy)
|
|
end
|
|
|
|
end
|