mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
168 lines
5 KiB
Ruby
168 lines
5 KiB
Ruby
|
Shindo.tests('Aws::IAM | role requests', ['aws']) do
|
||
|
tests('success') do
|
||
|
|
||
|
@role = {
|
||
|
'Arn' => String,
|
||
|
'AssumeRolePolicyDocument' => String,
|
||
|
'CreateDate' => Time,
|
||
|
'Path' => String,
|
||
|
'RoleId' => String,
|
||
|
'RoleName' => String
|
||
|
}
|
||
|
@role_format = {
|
||
|
'Role' => @role,
|
||
|
'RequestId' => String
|
||
|
}
|
||
|
tests("#create_role('fogrole')").formats(@role_format) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].create_role('fogrole', Fog::AWS::IAM::EC2_ASSUME_ROLE_POLICY).body
|
||
|
end
|
||
|
|
||
|
tests("#get_role('fogrole')").formats(@role_format) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].get_role('fogrole').body
|
||
|
end
|
||
|
|
||
|
@list_roles_format = {
|
||
|
'Roles' => [{
|
||
|
'Arn' => String,
|
||
|
'AssumeRolePolicyDocument' => String,
|
||
|
'CreateDate' => Time,
|
||
|
'Path' => String,
|
||
|
'RoleId' => String,
|
||
|
'RoleName' => String
|
||
|
}],
|
||
|
'RequestId' => String,
|
||
|
'IsTruncated' => Fog::Boolean,
|
||
|
}
|
||
|
|
||
|
tests("#list_roles").formats(@list_roles_format) do
|
||
|
pending if Fog.mocking?
|
||
|
body = Fog::AWS[:iam].list_roles.body
|
||
|
returns(true){!! body['Roles'].find {|role| role['RoleName'] == 'fogrole'}}
|
||
|
body
|
||
|
end
|
||
|
|
||
|
@profile_format = {
|
||
|
'InstanceProfile' => {
|
||
|
'Arn' => String,
|
||
|
'CreateDate' => Time,
|
||
|
'Path' => String,
|
||
|
'InstanceProfileId' => String,
|
||
|
'InstanceProfileName' => String,
|
||
|
'Roles' => [@role]
|
||
|
},
|
||
|
'RequestId' => String
|
||
|
|
||
|
}
|
||
|
tests("#create_instance_profile('fogprofile')").formats(@profile_format) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].create_instance_profile('fogprofile').body
|
||
|
end
|
||
|
|
||
|
tests("#get_instance_profile('fogprofile')").formats(@profile_format) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].get_instance_profile('fogprofile').body
|
||
|
end
|
||
|
|
||
|
tests("#add_role_to_instance_profile('fogprofile','fogrole')").formats(Aws::IAM::Formats::BASIC) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].add_role_to_instance_profile('fogrole', 'fogprofile').body
|
||
|
end
|
||
|
|
||
|
@profiles_format = {
|
||
|
'InstanceProfiles' => [{
|
||
|
'Arn' => String,
|
||
|
'CreateDate' => Time,
|
||
|
'Path' => String,
|
||
|
'InstanceProfileId' => String,
|
||
|
'InstanceProfileName' => String,
|
||
|
'Roles' => [@role]
|
||
|
}],
|
||
|
'IsTruncated' => Fog::Boolean,
|
||
|
'RequestId' => String
|
||
|
|
||
|
}
|
||
|
tests("list_instance_profiles_for_role('fogrole')").formats(@profiles_format) do
|
||
|
pending if Fog.mocking?
|
||
|
body = Fog::AWS[:iam].list_instance_profiles_for_role('fogrole').body
|
||
|
returns(['fogprofile']) { body['InstanceProfiles'].map {|hash| hash['InstanceProfileName']}}
|
||
|
body
|
||
|
end
|
||
|
|
||
|
tests("list_instance_profiles").formats(@profiles_format) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].list_instance_profiles.body
|
||
|
end
|
||
|
|
||
|
sample_policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
|
||
|
|
||
|
tests("put_role_policy").formats(Aws::IAM::Formats::BASIC) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].put_role_policy('fogrole', 'fogpolicy', sample_policy).body
|
||
|
end
|
||
|
|
||
|
@get_role_policy_format = {
|
||
|
'Policy' => {
|
||
|
'RoleName' => String,
|
||
|
'PolicyName' => String,
|
||
|
'PolicyDocument' => Hash,
|
||
|
},
|
||
|
'RequestId' => String
|
||
|
}
|
||
|
|
||
|
tests("get_role_policy").formats(@get_role_policy_format) do
|
||
|
pending if Fog.mocking?
|
||
|
body = Fog::AWS[:iam].get_role_policy('fogrole','fogpolicy').body
|
||
|
returns('fogpolicy') {body['Policy']['PolicyName']}
|
||
|
returns(sample_policy){body['Policy']['PolicyDocument']}
|
||
|
body
|
||
|
end
|
||
|
|
||
|
@list_role_policies_format = {
|
||
|
'PolicyNames' => [String],
|
||
|
'IsTruncated' => Fog::Boolean,
|
||
|
'RequestId' => String
|
||
|
}
|
||
|
|
||
|
tests("list_role_policies").formats(@list_role_policies_format) do
|
||
|
pending if Fog.mocking?
|
||
|
body = Fog::AWS[:iam].list_role_policies('fogrole').body
|
||
|
|
||
|
returns(['fogpolicy']) {body['PolicyNames']}
|
||
|
body
|
||
|
end
|
||
|
|
||
|
tests("delete_role_policy").formats(Aws::IAM::Formats::BASIC) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].delete_role_policy('fogrole', 'fogpolicy').body
|
||
|
end
|
||
|
|
||
|
returns([]) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].list_role_policies('fogrole').body['PolicyNames']
|
||
|
end
|
||
|
|
||
|
tests("remove_role_from_instance_profile").formats(Aws::IAM::Formats::BASIC) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].remove_role_from_instance_profile('fogrole', 'fogprofile').body
|
||
|
end
|
||
|
|
||
|
returns([]) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].list_instance_profiles_for_role('fogrole').body['InstanceProfiles']
|
||
|
end
|
||
|
|
||
|
tests("#delete_instance_profile('fogprofile'").formats(Aws::IAM::Formats::BASIC) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].delete_instance_profile('fogprofile').body
|
||
|
end
|
||
|
|
||
|
tests("#delete_role('fogrole'").formats(Aws::IAM::Formats::BASIC) do
|
||
|
pending if Fog.mocking?
|
||
|
Fog::AWS[:iam].delete_role('fogrole').body
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|