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