Implements #11: change_admin_password
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
require 'test_helper'
|
||||
|
||||
class Aviator::Test
|
||||
|
||||
describe 'aviator/openstack/compute/v2/public/change_admin_password' do
|
||||
|
||||
def create_request(session_data = get_session_data, &block)
|
||||
block ||= lambda do |params|
|
||||
params[:id] = 0
|
||||
params[:adminPass] = 'doesnotmatter'
|
||||
end
|
||||
|
||||
klass.new(session_data, &block)
|
||||
end
|
||||
|
||||
|
||||
def get_session_data
|
||||
session.send :auth_info
|
||||
end
|
||||
|
||||
|
||||
def helper
|
||||
Aviator::Test::RequestHelper
|
||||
end
|
||||
|
||||
|
||||
def klass
|
||||
@klass ||= helper.load_request('openstack', 'compute', 'v2', 'public', 'change_admin_password.rb')
|
||||
end
|
||||
|
||||
|
||||
def session
|
||||
unless @session
|
||||
@session = Aviator::Session.new(
|
||||
config_file: Environment.path,
|
||||
environment: 'openstack_member'
|
||||
)
|
||||
@session.authenticate
|
||||
end
|
||||
|
||||
@session
|
||||
end
|
||||
|
||||
|
||||
validate_attr :anonymous? do
|
||||
klass.anonymous?.must_equal false
|
||||
end
|
||||
|
||||
|
||||
validate_attr :api_version do
|
||||
klass.api_version.must_equal :v2
|
||||
end
|
||||
|
||||
|
||||
validate_attr :body do
|
||||
request = create_request
|
||||
|
||||
klass.body?.must_equal true
|
||||
request.body?.must_equal true
|
||||
request.body.wont_be_nil
|
||||
end
|
||||
|
||||
|
||||
validate_attr :endpoint_type do
|
||||
klass.endpoint_type.must_equal :public
|
||||
end
|
||||
|
||||
|
||||
validate_attr :headers do
|
||||
headers = { 'X-Auth-Token' => get_session_data[:access][:token][:id] }
|
||||
|
||||
request = create_request
|
||||
|
||||
request.headers.must_equal headers
|
||||
end
|
||||
|
||||
|
||||
validate_attr :http_method do
|
||||
create_request.http_method.must_equal :post
|
||||
end
|
||||
|
||||
|
||||
validate_attr :optional_params do
|
||||
klass.optional_params.must_equal []
|
||||
end
|
||||
|
||||
|
||||
validate_attr :required_params do
|
||||
klass.required_params.must_equal [
|
||||
:adminPass,
|
||||
:id
|
||||
]
|
||||
end
|
||||
|
||||
|
||||
validate_attr :url do
|
||||
service_spec = get_session_data[:access][:serviceCatalog].find{|s| s[:type] == 'compute' }
|
||||
server_id = '105b09f0b6500d36168480ad84'
|
||||
url = "#{ service_spec[:endpoints][0][:publicURL] }/servers/#{ server_id }/action"
|
||||
|
||||
request = create_request do |params|
|
||||
params[:id] = server_id
|
||||
params[:adminPass] = 'doesnotmatter'
|
||||
end
|
||||
|
||||
request.url.must_equal url
|
||||
end
|
||||
|
||||
|
||||
validate_response 'valid params are provided' do
|
||||
server = session.compute_service.request(:list_servers).body[:servers].first
|
||||
server_id = server[:id]
|
||||
password = 'new admin password'
|
||||
|
||||
response = session.compute_service.request :change_admin_password do |params|
|
||||
params[:id] = server_id
|
||||
params[:adminPass] = password
|
||||
end
|
||||
|
||||
response.status.must_equal 202
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
|
||||
|
||||
validate_response 'invalid server id is provided' do
|
||||
server_id = 'abogusserveridthatdoesnotexist'
|
||||
|
||||
response = session.compute_service.request :change_admin_password do |params|
|
||||
params[:id] = server_id
|
||||
params[:adminPass] = 'it does not matter'
|
||||
end
|
||||
|
||||
response.status.must_equal 404
|
||||
response.body.wont_be_nil
|
||||
response.headers.wont_be_nil
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user