Sha256: 1c3f74726f067af48fa600383d2b6c8d7294d628748bc889c553c5ad248a1581

Contents?: true

Size: 1.32 KB

Versions: 24

Compression:

Stored size: 1.32 KB

Contents

module Awspec::Generator
  module Spec
    class Subnet
      include Awspec::Helper::Finder
      def generate_by_vpc_id(vpc_id)
        describes = %w(
          subnet_id cidr_block
        )
        vpc = find_vpc(vpc_id)
        fail 'Not Found VPC' unless vpc
        @vpc_id = vpc[:vpc_id]
        @vpc_tag_name = vpc.tag_name
        subnets = select_subnet_by_vpc_id(@vpc_id)
        specs = subnets.map do |subnet|
          subnet_id = subnet[:subnet_id]
          subnet_tag_name = subnet.tag_name
          content = ERB.new(subnet_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
        end
        specs.join("\n")
      end

      def subnet_spec_template
        template = <<-'EOF'
<%- if subnet_tag_name -%>
describe subnet('<%= subnet_tag_name %>') do
<%- else -%>
describe subnet('<%= subnet_id %>') do
<%- end -%>
  it { should exist }
  it { should be_<%= subnet.state %> }
  it { should belong_to_vpc('<%= @vpc_tag_name %>') }
<% describes.each do |describe| %>
<%- if subnet.members.include?(describe.to_sym) && !subnet[describe.to_sym].nil? -%>
<%- if subnet[describe].is_a?(String) -%>
  its(:<%= describe %>) { should eq '<%= subnet[describe] %>' }
<%- else -%>
  its(:<%= describe %>) { should eq <%= subnet[describe] %> }
<%- end -%>
<%- end -%>
<% end %>
end
EOF
        template
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

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