mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
61 lines
1.4 KiB
Ruby
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
|