blob: 33d741a3e45d7d921e0649b8a4bb2985eea679dd [file]
require 'minitest/autorun'
require_relative File.join('..', '..', '..', 'lib', 'deltacloud', 'api.rb')
require_relative 'common.rb'
describe 'OpenStackDriver Keys' do
before do
@driver = Deltacloud::new(:openstack, credentials)
VCR.insert_cassette __name__
end
after do
VCR.eject_cassette
end
it 'must throw error when wrong credentials' do
Proc.new do
@driver.backend.images(OpenStruct.new(:user => 'unknown+wrong', :password => 'wrong'))
end.must_raise Deltacloud::Exceptions::AuthenticationFailure, 'Authentication Failure'
end
it 'must return list of keys' do
@driver.keys.wont_be_empty
@driver.keys.first.must_be_kind_of Deltacloud::Key
end
it 'must allow to filter keys' do
keys = @driver.keys :id => 'test1'
keys.wont_be_empty
keys.must_be_kind_of Array
keys.size.must_equal 1
keys.first.name.must_equal 'test1'
@driver.keys(:id => 'unknown').must_be_empty
end
it 'must allow to retrieve single key' do
key = @driver.key :id => 'test2'
key.wont_be_nil
key.name.must_equal 'test2'
key.fingerprint.wont_be_empty
key.credential_type.must_equal :key
key.state.must_equal 'AVAILABLE'
@driver.key(:id => 'unknown').must_be_nil
end
it 'must allow to create and destroy key' do
key = @driver.create_key(:key_name => 'test-unit-1')
key.wont_be_nil
key.id.must_equal 'test-unit-1'
key.fingerprint.wont_be_empty
key.pem_rsa_key.wont_be_empty
key.pem_rsa_key.must_match /^\-\-\-\-\-BEGIN RSA PRIVATE KEY/
# Should not allow duplicate keys to be created:
lambda {
@driver.create_key(:key_name => 'test-unit-1')
}.must_raise Deltacloud::Exceptions::BackendError
@driver.destroy_key(:id => 'test-unit-1').must_equal true
end
end