1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/tests/requests/iam/login_profile_tests.rb
2015-01-02 09:42:20 -08:00

62 lines
1.9 KiB
Ruby

Shindo.tests('AWS::IAM | user requests', ['aws']) do
unless Fog.mocking?
Fog::AWS[:iam].create_user('fog_user')
end
tests('success') do
@login_profile_format = {
'LoginProfile' => {
'UserName' => String,
'CreateDate' => Time
},
'RequestId' => String
}
tests("#create_login_profile('fog_user')").formats(@login_profile_format) do
pending if Fog.mocking?
Fog::AWS[:iam].create_login_profile('fog_user', 'somepassword').body
end
tests("#get_login_profile('fog_user')").formats(@login_profile_format) do
pending if Fog.mocking?
result = Fog::AWS[:iam].get_login_profile('fog_user').body
returns('fog_user') {result['LoginProfile']['UserName']}
result
end
tests("#update_login_profile('fog_user')").formats(AWS::IAM::Formats::BASIC) do
pending if Fog.mocking?
begin
Fog::AWS[:iam].update_login_profile('fog_user', 'otherpassword').body
rescue Excon::Errors::Conflict #profile cannot be updated or deleted until it has finished creating; api provides no way of telling whether creation process complete
sleep 5
retry
end
end
tests("#delete_login_profile('fog_user')").formats(AWS::IAM::Formats::BASIC) do
pending if Fog.mocking?
Fog::AWS[:iam].delete_login_profile('fog_user').body
end
tests("#get_login_profile('fog_user')") do
pending if Fog.mocking?
raises(Excon::Errors::NotFound) {Fog::AWS[:iam].get_login_profile('fog_user')}
end
end
tests('failure') do
tests('get login profile for non existing user') do
pending if Fog.mocking?
raises(Fog::AWS::IAM::NotFound) { Fog::AWS[:iam].get_login_profile('idontexist')}
raises(Fog::AWS::IAM::NotFound) { Fog::AWS[:iam].delete_login_profile('fog_user')}
end
end
unless Fog.mocking?
Fog::AWS[:iam].delete_user('fog_user')
end
end