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/requests/block_storage/volume_tests.rb
2012-09-13 10:26:30 -04:00

61 lines
1.4 KiB
Ruby

Shindo.tests('Fog::Rackspace::BlockStorage | volume_tests', ['rackspace']) do
pending if Fog.mocking?
VOLUME_FORMAT = {
'id' => String,
'status' => String,
'display_name' => Fog::Nullable::String,
'display_description' => Fog::Nullable::String,
'size' => Integer,
'created_at' => String,
'volume_type' => String,
'availability_zone' => String,
'snapshot_id' => Fog::Nullable::String,
'attachments' => Array,
'metadata' => Hash
}
GET_VOLUME_FORMAT = {
'volume' => VOLUME_FORMAT
}
LIST_VOLUME_FORMAT = {
'volumes' => [VOLUME_FORMAT]
}
service = Fog::Rackspace::BlockStorage.new
tests('success') do
id = nil
size = 10
tests("#create_volume(#{size})").formats(GET_VOLUME_FORMAT) do
data = service.create_volume(size).body
id = data['volume']['id']
data
end
tests("#list_volumes").formats(LIST_VOLUME_FORMAT) do
service.list_volumes.body
end
tests("#get_volume(#{id})").formats(GET_VOLUME_FORMAT) do
service.get_volume(id).body
end
tests("#delete_volume(#{id})").succeeds do
service.delete_volume(id)
end
end
tests('failure') do
tests("#create_volume(-1)").raises(Fog::Rackspace::BlockStorage::BadRequest) do
service.create_volume(-1)
end
tests("#get_volume(-1)").raises(Fog::Rackspace::BlockStorage::NotFound) do
service.get_volume(-1)
end
end
end