]> review.fuel-infra Code Review - puppet-modules/puppetlabs-firewall.git/commitdiff
added spec tests for iptables-save parser
authorFrank Ederveen <frank@crystalconsulting.eu>
Sun, 15 Sep 2013 20:55:50 +0000 (21:55 +0100)
committerFrank Ederveen <frank@crystalconsulting.eu>
Sun, 15 Sep 2013 20:55:50 +0000 (21:55 +0100)
spec/unit/puppet/provider/iptables_spec.rb

index c13b9c9ec6e360a42eef4e45c1602a9a47e782f9..72c73753916a7799a09922af7a2f667f183e29a1 100644 (file)
@@ -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