From 76b4c03d598f48fdb505b43c70d637f1763752f7 Mon Sep 17 00:00:00 2001 From: Ken Barber Date: Sat, 13 Apr 2013 20:00:43 +0100 Subject: [PATCH] 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 --- spec/system/class_spec.rb | 8 ++-- spec/system/stanard_usage_spec.rb | 65 +++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 spec/system/stanard_usage_spec.rb 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 -- 2.45.2