mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
more instance profile mocks
This commit is contained in:
parent
337c7560a8
commit
8689919d77
6 changed files with 46 additions and 0 deletions
|
@ -50,6 +50,11 @@ module Fog
|
||||||
service.managed_policies(:role_name => self.rolename)
|
service.managed_policies(:role_name => self.rolename)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def instance_profiles
|
||||||
|
requires :rolename
|
||||||
|
service.instance_profiles.load(service.list_instance_profiles_for_role(self.rolename).body["InstanceProfiles"])
|
||||||
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
requires :rolename
|
requires :rolename
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,15 @@ module Fog
|
||||||
}.merge!(options))
|
}.merge!(options))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class Mock
|
||||||
|
def list_instance_profiles(options={})
|
||||||
|
response = Excon::Response.new
|
||||||
|
profiles = self.data[:instance_profiles].values
|
||||||
|
response.body = { "InstanceProfiles" => profiles, "IsTruncated" => false, "RequestId" => Fog::AWS::Mock.request_id }
|
||||||
|
response
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -44,6 +44,16 @@ module Fog
|
||||||
}.merge!(options))
|
}.merge!(options))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class Mock
|
||||||
|
def list_instance_profiles_for_role(role_name, options={})
|
||||||
|
response = Excon::Response.new
|
||||||
|
|
||||||
|
profiles = self.data[:instance_profiles].values.select { |p| p["Roles"].include?(role_name) }
|
||||||
|
response.body = { "InstanceProfiles" => profiles, "IsTruncated" => false, "RequestId" => Fog::AWS::Mock.request_id }
|
||||||
|
response
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,6 +6,9 @@ Shindo.tests("Fog::AWS[:iam] | instance_profiles", ['aws', 'iam']) do
|
||||||
returns(true) { @instance.add_role(@role.rolename) }
|
returns(true) { @instance.add_role(@role.rolename) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
returns(1) { @role.instance_profiles.count }
|
||||||
|
returns(@instance) { @role.instance_profiles.first }
|
||||||
|
|
||||||
tests("#remove_role('#{@role.rolename}')") do
|
tests("#remove_role('#{@role.rolename}')") do
|
||||||
returns(true) { @instance.remove_role(@role.rolename) }
|
returns(true) { @instance.remove_role(@role.rolename) }
|
||||||
end
|
end
|
||||||
|
|
|
@ -144,6 +144,11 @@ Xb9WSr07saxZQbxBPQyTlb0Q9Tu2djAq2/o/nYD1/50/fXUTuWMB
|
||||||
INSTANCE_PROFILE_RESULT = BASIC.merge(
|
INSTANCE_PROFILE_RESULT = BASIC.merge(
|
||||||
'InstanceProfile' => INSTANCE_PROFILE
|
'InstanceProfile' => INSTANCE_PROFILE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
LIST_INSTANCE_PROFILE_RESULT = BASIC.merge(
|
||||||
|
"IsTruncated" => Fog::Boolean,
|
||||||
|
"InstanceProfiles" => [INSTANCE_PROFILE]
|
||||||
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,10 +3,18 @@ include AWS::IAM::Formats
|
||||||
Shindo.tests("AWS::IAM | instance profile requests", ['aws']) do
|
Shindo.tests("AWS::IAM | instance profile requests", ['aws']) do
|
||||||
tests('success') do
|
tests('success') do
|
||||||
profile_name = uniq_id('fog-instance-profile')
|
profile_name = uniq_id('fog-instance-profile')
|
||||||
|
@instance_profile_count = Fog::AWS[:iam].list_instance_profiles.body["InstanceProfiles"].count
|
||||||
|
|
||||||
tests("#create_instance_profile('#{profile_name}')").formats(INSTANCE_PROFILE_RESULT) do
|
tests("#create_instance_profile('#{profile_name}')").formats(INSTANCE_PROFILE_RESULT) do
|
||||||
Fog::AWS[:iam].create_instance_profile(profile_name).body
|
Fog::AWS[:iam].create_instance_profile(profile_name).body
|
||||||
end
|
end
|
||||||
|
|
||||||
|
tests("#list_instance_profiles").formats(LIST_INSTANCE_PROFILE_RESULT) do
|
||||||
|
body = Fog::AWS[:iam].list_instance_profiles.body
|
||||||
|
returns(@instance_profile_count + 1) { body["InstanceProfiles"].count }
|
||||||
|
body
|
||||||
|
end
|
||||||
|
|
||||||
tests("#get_instance_profile('#{profile_name}')").formats(INSTANCE_PROFILE_RESULT) do
|
tests("#get_instance_profile('#{profile_name}')").formats(INSTANCE_PROFILE_RESULT) do
|
||||||
Fog::AWS[:iam].get_instance_profile(profile_name).body
|
Fog::AWS[:iam].get_instance_profile(profile_name).body
|
||||||
end
|
end
|
||||||
|
@ -17,6 +25,12 @@ Shindo.tests("AWS::IAM | instance profile requests", ['aws']) do
|
||||||
Fog::AWS[:iam].add_role_to_instance_profile(@role.rolename, profile_name).body
|
Fog::AWS[:iam].add_role_to_instance_profile(@role.rolename, profile_name).body
|
||||||
end
|
end
|
||||||
|
|
||||||
|
tests("#list_instance_profiles_for_role('#{@role.rolename}')").formats(LIST_INSTANCE_PROFILE_RESULT) do
|
||||||
|
body = Fog::AWS[:iam].list_instance_profiles_for_role(@role.rolename).body
|
||||||
|
returns(1) { body["InstanceProfiles"].count }
|
||||||
|
body
|
||||||
|
end
|
||||||
|
|
||||||
tests("#remove_role_from_instance_profile('#{@role.rolename}', '#{profile_name}')").formats(BASIC) do
|
tests("#remove_role_from_instance_profile('#{@role.rolename}', '#{profile_name}')").formats(BASIC) do
|
||||||
Fog::AWS[:iam].remove_role_from_instance_profile(@role.rolename, profile_name).body
|
Fog::AWS[:iam].remove_role_from_instance_profile(@role.rolename, profile_name).body
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue