From: Frank Ederveen <frank@crystalconsulting.eu>
Date: Sun, 15 Sep 2013 20:55:50 +0000 (+0100)
Subject: added spec tests for iptables-save parser
X-Git-Tag: 0.5.0~24^2
X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=b1f2d54812094eff201fbaff81e0737b298eb8a7;p=puppet-modules%2Fpuppetlabs-firewall.git

added spec tests for iptables-save parser
---

diff --git a/spec/unit/puppet/provider/iptables_spec.rb b/spec/unit/puppet/provider/iptables_spec.rb
index c13b9c9..72c7375 100644
--- a/spec/unit/puppet/provider/iptables_spec.rb
+++ b/spec/unit/puppet/provider/iptables_spec.rb
@@ -123,6 +123,37 @@ describe 'iptables provider' do
     it 'rule name contains a MD5 sum of the line' do
       expect(resource[:name]).to eq("9000 #{Digest::MD5.hexdigest(resource[:line])}")
     end
+
+    it 'parsed the rule arguments correctly' do
+      expect(resource[:chain]).to eq('INPUT')
+      expect(resource[:source]).to eq('1.1.1.1/32')
+      expect(resource[:destination]).to eq('1.1.1.1/32')
+      expect(resource[:proto]).to eq('tcp')
+      expect(resource[:dport]).to eq(['7061', '7062'])
+      expect(resource[:sport]).to eq(['7061', '7062'])
+      expect(resource[:action]).to eq('accept')
+    end
+  end
+
+  describe 'when converting existing rules generates by system-config-firewall-tui to resources' do
+    let(:sample_rule) {
+      # as generated by iptables-save from rules created with system-config-firewall-tui
+      '-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT'
+    }
+    let(:resource) { provider.rule_to_hash(sample_rule, 'filter', 0) }
+    let(:instance) { provider.new(resource) }
+
+    it 'rule name contains a MD5 sum of the line' do
+      expect(resource[:name]).to eq("9000 #{Digest::MD5.hexdigest(resource[:line])}")
+    end
+
+    it 'parse arguments' do
+      expect(resource[:chain]).to eq('INPUT')
+      expect(resource[:proto]).to eq('tcp')
+      expect(resource[:dport]).to eq(['22'])
+      expect(resource[:state]).to eq(['NEW'])
+      expect(resource[:action]).to eq('accept')
+    end
   end
 
   describe 'when creating resources' do