fog--fog/tests/brightbox/compute_tests.rb

102 lines
3.4 KiB
Ruby

Shindo.tests('Fog::Compute[:brightbox]', ['brightbox']) do
@test_service = Fog::Compute[:brightbox]
tests("#respond_to? :default_image").returns(true) do
@test_service.respond_to?(:default_image)
end
end
Shindo.tests('Fog::Compute.new', ['brightbox']) do
tests("service options") do
{
:brightbox_api_url => "https://example.com",
:brightbox_auth_url => "https://example.com",
:brightbox_client_id => "app-12345",
:brightbox_secret => "12345abdef6789",
:brightbox_username => "user-12345",
:brightbox_password => "password1234",
:brightbox_account => "acc-12345",
:brightbox_access_token => "12345abdef6789",
:brightbox_refresh_token => "12345abdef6789",
:brightbox_token_management => false
}.each_pair do |option, sample|
tests("recognises :#{option}").returns(true) do
options = {:provider => "Brightbox"}
options[option] = sample
begin
Fog::Compute.new(options)
true
rescue ArgumentError
false
end
end
end
end
tests("automatic token management") do
service_options = {:provider => "Brightbox"}
tests("when enabled (default)") do
service_options[:brightbox_token_management] = true
tests("using bad token") do
service_options[:brightbox_access_token] = "bad-token"
tests("#request").returns(true, "returns a Hash") do
pending if Fog.mocking?
service = Fog::Compute.new(service_options)
response = service.get_authenticated_user
response.is_a?(Hash) # This is an outstanding issue, should be Excon::Response
end
end
end
tests("when disabled") do
service_options[:brightbox_token_management] = false
tests("using bad token") do
service_options[:brightbox_access_token] = "bad-token"
tests("#request").raises(Excon::Errors::Unauthorized) do
pending if Fog.mocking?
service = Fog::Compute.new(service_options)
service.get_authenticated_user
end
end
end
end
tests("account scoping") do
service = Fog::Compute.new(:provider => "Brightbox")
configured_account = Fog.credentials[:brightbox_account]
tests("when Fog.credentials are #{configured_account}") do
test("#scoped_account == #{configured_account}") { service.scoped_account == configured_account }
end
set_account = "acc-35791"
tests("when Compute instance is updated to #{set_account}") do
service.scoped_account = set_account
test("#scoped_account == #{set_account}") { service.scoped_account == set_account }
end
tests("when Compute instance is reset") do
service.scoped_account_reset
test("#scoped_account == #{configured_account}") { service.scoped_account == configured_account }
end
optioned_account = "acc-56789"
tests("when Compute instance created with :brightbox_account => #{optioned_account}") do
service = Fog::Compute.new(:provider => "Brightbox", :brightbox_account => optioned_account )
test("#scoped_account == #{optioned_account}") { service.scoped_account == optioned_account }
end
request_account = "acc-24680"
tests("when requested with #{request_account}") do
test("#scoped_account(#{request_account}) == #{request_account}") { service.scoped_account(request_account) == request_account }
end
end
end