From: Ken Barber Date: Sat, 13 Apr 2013 19:00:43 +0000 (+0100) Subject: Add tests for the recommended setup X-Git-Tag: 0.3.0~10^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=76b4c03d598f48fdb505b43c70d637f1763752f7;p=puppet-modules%2Fpuppetlabs-firewall.git Add tests for the recommended setup Using the documented recommended setup, we test if it works with no error and test if it is idempotent by running it again, looking for resource changes. Signed-off-by: Ken Barber --- diff --git a/spec/system/class_spec.rb b/spec/system/class_spec.rb index 6dfaa2e..8ba8415 100644 --- a/spec/system/class_spec.rb +++ b/spec/system/class_spec.rb @@ -1,10 +1,13 @@ require 'spec_helper_system' describe "firewall class:" do - it "should run without event" do + let(:pp) do pp = <<-EOS class { 'firewall': } EOS + end + + it "should run without event" do puppet_apply(pp) do |r| r[:stderr].should == '' r[:exit_code].should_not eq(1) @@ -12,9 +15,6 @@ describe "firewall class:" do end it "should be idempotent" do - pp = <<-EOS - class { 'firewall': } - EOS puppet_apply(pp) do |r| r[:stderr].should == '' r[:exit_code].should == 0 diff --git a/spec/system/stanard_usage_spec.rb b/spec/system/stanard_usage_spec.rb new file mode 100644 index 0000000..fc935f7 --- /dev/null +++ b/spec/system/stanard_usage_spec.rb @@ -0,0 +1,65 @@ +require 'spec_helper_system' + +# Some tests for the standard recommended usage +describe "standard usage:" do + let(:pp) do + pp = <<-EOS +class my_fw::pre { + Firewall { + require => undef, + } + + # Default firewall rules + firewall { '000 accept all icmp': + proto => 'icmp', + action => 'accept', + }-> + firewall { '001 accept all to lo interface': + proto => 'all', + iniface => 'lo', + action => 'accept', + }-> + firewall { '002 accept related established rules': + proto => 'all', + state => ['RELATED', 'ESTABLISHED'], + action => 'accept', + } +} +class my_fw::post { + firewall { '999 drop all': + proto => 'all', + action => 'drop', + before => undef, + } +} +resources { "firewall": + purge => true +} +Firewall { + before => Class['my_fw::post'], + require => Class['my_fw::pre'], +} +class { ['my_fw::pre', 'my_fw::post']: } +class { 'firewall': } +firewall { '500 open up port 22': + action => 'accept', + proto => 'tcp', + dport => 22, +} + EOS + end + + it 'make sure it runs without error' do + puppet_apply(pp) do |r| + r[:stderr].should == '' + r[:exit_code].should_not eq(1) + end + end + + it 'should be idempotent' do + puppet_apply(pp) do |r| + r[:stderr].should == '' + r[:exit_code].should == 0 + end + end +end