1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[bbg] request tests

This commit is contained in:
geemus 2010-06-03 21:32:59 -07:00
parent c6bcbc7d40
commit 676fb4d760
9 changed files with 178 additions and 4 deletions

26
tests/bluebox/helper.rb Normal file
View file

@ -0,0 +1,26 @@
module Bluebox
def self.[](service)
@@connections ||= Hash.new do |hash, key|
credentials = Fog.credentials.reject do |k,v|
![:bluebox_api_key, :bluebox_customer_id].include?(k)
end
hash[key] = case key
when :blocks
Fog::Bluebox.new(credentials)
end
end
@@connections[service]
end
module Formats
PRODUCT = {
'cost' => Float,
'description' => String,
'id' => String
}
end
end

View file

@ -0,0 +1,68 @@
Shindo.tests('Bluebox | block requests', ['bluebox']) do
@block_format = {
'cpu' => Float,
'hostname' => String,
'id' => String,
'ips' => [{'address' => String}],
'memory' => Integer,
'product' => Bluebox::Formats::PRODUCT,
'status' => String,
'storage' => Integer,
'template' => String,
}
tests('success') do
@product_id = '94fd37a7-2606-47f7-84d5-9000deda52ae' # 1 GB
@template_id = 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
@password = 'R8p6ikXOfCxoKy'
@block_id = nil
tests("create_block('#{@product_id}', '#{@template_id}', 'fog_block', 'password' => '#{@password}')").formats(@block_format) do
data = Bluebox[:blocks].create_block(@product_id, @template_id, 'fog_block', 'password' => @password).body
@block_id = data['id']
data
end
Bluebox[:blocks].servers.get(@block_id).wait_for { ready? }
tests("get_block('#{@block_id}')").formats(@block_format) do
Bluebox[:blocks].get_block(@block_id).body
end
tests("get_blocks").formats([@block_format.reject {|key,value| ['product', 'template'].include?(key)}]) do
Bluebox[:blocks].get_blocks.body
end
tests("reboot_block('#{@block_id}')").formats({'status' => String, 'text' => String}) do
Bluebox[:blocks].reboot_block(@block_id).body
end
Bluebox[:blocks].servers.get(@block_id).wait_for { ready? }
tests("destroy_block('#{@block_id})'").formats({'text' => String}) do
Bluebox[:blocks].destroy_block(@block_id).body
end
end
tests('failure') do
tests("get_block('00000000-0000-0000-0000-000000000000')").raises(Fog::Bluebox::NotFound) do
Bluebox[:blocks].get_block('00000000-0000-0000-0000-000000000000')
end
tests("reboot_block('00000000-0000-0000-0000-000000000000')").raises(Fog::Bluebox::NotFound) do
Bluebox[:blocks].reboot_block('00000000-0000-0000-0000-000000000000')
end
tests("destroy_block('00000000-0000-0000-0000-000000000000')").raises(Fog::Bluebox::NotFound) do
Bluebox[:blocks].destroy_block('00000000-0000-0000-0000-000000000000')
end
end
end

View file

@ -0,0 +1,25 @@
Shindo.tests('Bluebox | product requests', ['bluebox']) do
tests('success') do
@product_id = '94fd37a7-2606-47f7-84d5-9000deda52ae' # 1 GB
tests("get_product('#{@product_id}')").formats(Bluebox::Formats::PRODUCT) do
Bluebox[:blocks].get_product(@product_id).body
end
tests("get_products").formats([Bluebox::Formats::PRODUCT]) do
Bluebox[:blocks].get_products.body
end
end
tests('failure') do
tests("get_product('00000000-0000-0000-0000-000000000000')").raises(Fog::Bluebox::NotFound) do
Bluebox[:blocks].get_product('00000000-0000-0000-0000-000000000000')
end
end
end

View file

@ -0,0 +1,32 @@
Shindo.tests('Bluebox | template requests', ['bluebox']) do
@template_format = {
'created' => String,
'description' => String,
'id' => String,
'public' => Fog::Boolean
}
tests('success') do
@template_id = 'a00baa8f-b5d0-4815-8238-b471c4c4bf72' # Ubuntu 9.10 64bit
tests("get_template('#{@template_id}')").formats(@template_format) do
Bluebox[:blocks].get_template(@template_id).body
end
tests("get_templates").formats([@template_format]) do
Bluebox[:blocks].get_templates.body
end
end
tests('failure') do
tests("get_template('00000000-0000-0000-0000-000000000000')").raises(Fog::Bluebox::NotFound) do
Bluebox[:blocks].get_template('00000000-0000-0000-0000-000000000000')
end
end
end