mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
58 lines
1.5 KiB
Ruby
58 lines
1.5 KiB
Ruby
|
Shindo.tests("Fog::Compute[:iam] | policies", ['aws','iam']) do
|
||
|
|
||
|
iam = Fog::AWS[:iam]
|
||
|
|
||
|
@username = 'fake_user'
|
||
|
@user = iam.users.create(:id => @username)
|
||
|
@policy_document = {"Statement"=>[{"Action"=>["sqs:*"], "Effect"=>"Allow", "Resource"=>"*"}]}
|
||
|
@policy_name = 'fake-sqs-policy'
|
||
|
|
||
|
tests('#all', 'there is no policies').succeeds do
|
||
|
@user.policies.empty?
|
||
|
end
|
||
|
|
||
|
tests('#create') do
|
||
|
tests('a valid policy').succeeds do
|
||
|
policy = @user.policies.create(:id => @policy_name, :document => @policy_document)
|
||
|
policy.id == @policy_name
|
||
|
policy.username == @username
|
||
|
policy.document == @policy_document
|
||
|
end
|
||
|
|
||
|
# The mocking doesn't validate the document policy
|
||
|
#tests('an invalid valid policy').succeeds do
|
||
|
# raises(Fog::AWS::IAM::Error) { @user.policies.create(id: 'non-valid-document', document: 'invalid json blob') }
|
||
|
#end
|
||
|
end
|
||
|
|
||
|
@user.policies.create(:id => 'another-policy', :document => {})
|
||
|
|
||
|
tests('#all','there are two policies').succeeds do
|
||
|
@user.policies.size == 2
|
||
|
end
|
||
|
|
||
|
tests('#get') do
|
||
|
tests('a valid policy').succeeds do
|
||
|
policy = @user.policies.get(@policy_name)
|
||
|
policy.id == @polic_name
|
||
|
policy.username == @username
|
||
|
policy.document == @policy_document
|
||
|
end
|
||
|
|
||
|
tests('an invalid policy').succeeds do
|
||
|
@user.policies.get('non-existing') == nil
|
||
|
end
|
||
|
end
|
||
|
|
||
|
tests('#destroy').succeeds do
|
||
|
@user.policies.get(@policy_name).destroy
|
||
|
end
|
||
|
|
||
|
# clean up
|
||
|
@user.access_keys.map(&:destroy)
|
||
|
@user.policies.map(&:destroy)
|
||
|
@user.destroy
|
||
|
|
||
|
|
||
|
end
|