From: Ken Barber Date: Sun, 18 Sep 2011 01:54:45 +0000 (+0100) Subject: (#9576) Stub provider so it works properly outside of Linux. X-Git-Tag: v0.0.1~5^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=3e1a5d77cdf21deff0a73228c5c28366c808ad3b;p=puppet-modules%2Fpuppetlabs-firewall.git (#9576) Stub provider so it works properly outside of Linux. --- diff --git a/spec/provider/iptables_prov_spec.rb b/spec/unit/provider/iptables_prov_spec.rb similarity index 51% rename from spec/provider/iptables_prov_spec.rb rename to spec/unit/provider/iptables_prov_spec.rb index 30bc02a..3b32132 100644 --- a/spec/provider/iptables_prov_spec.rb +++ b/spec/unit/provider/iptables_prov_spec.rb @@ -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