]> review.fuel-infra Code Review - puppet-modules/puppetlabs-firewall.git/commitdiff
(#9576) Stub provider so it works properly outside of Linux.
authorKen Barber <ken@bob.sh>
Sun, 18 Sep 2011 01:54:45 +0000 (02:54 +0100)
committerKen Barber <ken@bob.sh>
Sun, 18 Sep 2011 01:54:45 +0000 (02:54 +0100)
spec/unit/provider/iptables_prov_spec.rb [moved from spec/provider/iptables_prov_spec.rb with 51% similarity]

similarity index 51%
rename from spec/provider/iptables_prov_spec.rb
rename to spec/unit/provider/iptables_prov_spec.rb
index 30bc02ad6a99730d97993042716c90f18f538434..3b32132c32e09d5cac4e2288aeee6824b4629d92 100644 (file)
@@ -2,8 +2,10 @@ require 'spec_helper'
 
 describe 'iptables provider' do
   before :each do
-    setup_provider(:firewall, :iptables)
-    setup_resource(:firewall, {
+    @provider = Puppet::Type.type(:firewall).provider(:iptables)
+    Puppet::Type::Firewall.stubs(:defaultprovider).returns @provider
+    @provider.stubs(:command).with(:iptables_save).returns "/sbin/iptables-save"
+    @resource = Puppet::Type.type(:firewall).new({
       :name  => '000 test foo',
       :chain => 'INPUT',
       :jump  => 'ACCEPT'
@@ -11,6 +13,9 @@ describe 'iptables provider' do
   end
   
   it 'should be able to get a list of existing rules' do
+    # Pretend to return nil from iptables
+    @provider.expects(:execute).with(['/sbin/iptables-save']).returns("")
+
     @provider.instances.each do |rule|
       rule.should be_instance_of(@provider)
       rule.properties[:provider].to_s.should == @provider.name.to_s
@@ -19,16 +24,16 @@ describe 'iptables provider' do
 
   describe 'when converting rules to resources' do
     before :each do
-      @resource = @provider.rule_to_hash('-A INPUT -p tcp -m multiport --dports 7061,7062 -m comment --comment "000 allow foo" -j ACCEPT', 'filter', 0)
+      @resource = @provider.rule_to_hash('-A INPUT -s 1.1.1.1 -d 1.1.1.1 -p tcp -m multiport --dports 7061,7062 -m multiport --sports 7061,7062 -m comment --comment "000 allow foo" -j ACCEPT', 'filter', 0)
     end
 
-    [:name, :table, :chain, :proto, :jump].each do |param|
+    [:name, :table, :chain, :proto, :jump, :source, :destination].each do |param|
       it "#{param} should be a string" do
         @resource[param].class.should == String
       end
     end
 
-    [:dport, :sport, :source, :destination].each do |param|
+    [:dport, :sport].each do |param|
       it "#{param} should be an array" do
         @resource[param].class.should == Array
       end
@@ -37,7 +42,8 @@ describe 'iptables provider' do
 
   describe 'when modifying resources' do
     before :each do
-      setup_instance(@provider, @resource)
+      @instance = @provider.new(@resource)
+      @provider.expects(:execute).with(['/sbin/iptables-save']).returns("")
     end
 
     it 'should do something' do