Sha256: 5c5e09a9c6f208478ccf49793ed02f604687f586328ff2a296c251e905a8ceb4

Contents?: true

Size: 1.57 KB

Versions: 47

Compression:

Stored size: 1.57 KB

Contents

module Awspec::Generator
  module Spec
    class IamPolicy
      include Awspec::Helper::Finder
      def generate_all
        policies = select_all_attached_policies
        policies.empty? && fail('Not Found policy')
        ERB.new(policy_spec_template, nil, '-').result(binding).chomp
      end

      # rubocop:disable all
      def policy_spec_template
        template = <<-'EOF'
<% policies.each do |policy| %>
describe iam_policy('<%= policy.policy_name %>') do
  it { should exist }
<%- if policy.is_attachable -%>
  it { should be_attachable }
<%- else -%>
  it { should_not be_attachable }
<%- end -%>
  its(:arn) { should eq '<%= policy.arn %>' }
  its(:update_date) { should eq Time.parse('<%= policy.update_date %>') }
  its(:attachment_count) { should eq <%= policy.attachment_count %> }
<%- users = select_attached_users(policy.arn) -%>
<%- if users.empty? -%>
  it { should_not be_attached_to_user }
<%- else -%>
<%- users.each do |user| -%>
  it { should     be_attached_to_user('<%= user.user_name %>') }
<%- end -%>
<%- end -%>
<%- groups = select_attached_groups(policy.arn) -%>
<%- if groups.empty? -%>
  it { should_not be_attached_to_group }
<%- else -%>
<%- groups.each do |group| -%>
  it { should     be_attached_to_group('<%= group.group_name %>') }
<%- end -%>
<%- end -%>
<%- roles = select_attached_roles(policy.arn) -%>
<%- if roles.empty? -%>
  it { should_not be_attached_to_role }
<%- else -%>
<%- roles.each do |role| -%>
  it { should     be_attached_to_role('<%= role.role_name %>') }
<%- end -%>
<%- end -%>
end
<% end %>
EOF
        template
      end
    end
  end
end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
awspec-0.30.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.29.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.28.1 lib/awspec/generator/spec/iam_policy.rb
awspec-0.28.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.27.2 lib/awspec/generator/spec/iam_policy.rb
awspec-0.27.1 lib/awspec/generator/spec/iam_policy.rb
awspec-0.27.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.26.2 lib/awspec/generator/spec/iam_policy.rb
awspec-0.26.1 lib/awspec/generator/spec/iam_policy.rb
awspec-0.26.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.25.3 lib/awspec/generator/spec/iam_policy.rb
awspec-0.25.2 lib/awspec/generator/spec/iam_policy.rb
awspec-0.25.1 lib/awspec/generator/spec/iam_policy.rb
awspec-0.25.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.24.2 lib/awspec/generator/spec/iam_policy.rb
awspec-0.24.1 lib/awspec/generator/spec/iam_policy.rb
awspec-0.24.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.23.0 lib/awspec/generator/spec/iam_policy.rb
awspec-0.22.1 lib/awspec/generator/spec/iam_policy.rb
awspec-0.22.0 lib/awspec/generator/spec/iam_policy.rb