diff options
author | Feng Pan <fpan@redhat.com> | 2016-11-07 19:22:21 -0500 |
---|---|---|
committer | Feng Pan <fpan@redhat.com> | 2016-11-21 21:27:09 -0500 |
commit | 9326e4237f4d161f297dc4493ab4928ea6e2bf0f (patch) | |
tree | 25372fa964fe84b160c5bfc58304285902edbefc /spec/unit | |
parent | c70bea9fb9cd5dfb29d7ab8f7aaae7324c31f1e3 (diff) |
Initial Commit.
Change-Id: I212ec4be42357edddd931e9e479e33131ccd4bac
Signed-off-by: Feng Pan <fpan@redhat.com>
Diffstat (limited to 'spec/unit')
-rw-r--r-- | spec/unit/provider/vpp_service/vpp_spec.rb | 46 | ||||
-rw-r--r-- | spec/unit/type/vpp_service_spec.rb | 56 |
2 files changed, 102 insertions, 0 deletions
diff --git a/spec/unit/provider/vpp_service/vpp_spec.rb b/spec/unit/provider/vpp_service/vpp_spec.rb new file mode 100644 index 0000000..1d9d9ba --- /dev/null +++ b/spec/unit/provider/vpp_service/vpp_spec.rb @@ -0,0 +1,46 @@ +require 'puppet' +require 'puppet/provider/vpp_service/vpp' +require 'spec_helper' + +provider_class = Puppet::Type.type(:vpp_service).provider(:vpp) + +describe 'Puppet::Type.type(:vpp_service).provider(:vpp)' do + + let :vpp_attrs do + { + :name => 'vpp service config', + :pci_devs => '0000:00:07.0', + :ensure => 'present', + :state => 'up', + :copy_kernel_nic_ip => 'false', + } + end + + let :resource do + Puppet::Type::Vpp_service.new(vpp_attrs) + end + + let :provider do + provider_class.new(resource) + end + + describe 'on create' do + it 'should call service restart' do + provider.expects(:vpp_pre_config) + provider.expects(:configure_vpp_interfaces) + provider.expects(:systemctlcmd).with('restart', 'vpp') + provider.expects(:systemctlcmd).with('enable', 'vpp') + provider.expects(:systemctlcmd).with('is-enabled', 'vpp') + provider.expects(:systemctlcmd).with('is-active', 'vpp') + provider.create + end + end + + describe "when changing state" do + it 'should change state' do + provider.stubs(:get_int_prefix).returns('GigabitEthernet0/7/0') + provider.expects(:vppctlcmd).with('set int state', 'GigabitEthernet0/7/0', 'down') + provider.state = 'down' + end + end +end
\ No newline at end of file diff --git a/spec/unit/type/vpp_service_spec.rb b/spec/unit/type/vpp_service_spec.rb new file mode 100644 index 0000000..9b08ffa --- /dev/null +++ b/spec/unit/type/vpp_service_spec.rb @@ -0,0 +1,56 @@ +require 'puppet' +require 'puppet/type/vpp_service' +require 'spec_helper' + +describe 'Puppet::Type.type(:neutron_config)' do + + before :each do + @vpp_service = Puppet::Type.type(:vpp_service).new(:name => 'vpp service config') + end + + it 'should have default values' do + expect(@vpp_service[:state]).to eq(:up) + expect(@vpp_service[:copy_kernel_nic_ip]).to eq(:true) + end + + it 'should accept a single pci dev' do + Puppet::Type.type(:vpp_service).new(:name => 'vpp service config', :pci_devs => '0000:00:07.0') + end + + it 'should accept array of pci devs' do + Puppet::Type.type(:vpp_service).new(:name => 'vpp service config', :pci_devs => ['0000:00:07.0', '0000:00:08.0']) + end + + it 'should not accept invalid pci dev format' do + expect { + Puppet::Type.type(:vpp_service).new(:name => 'vpp service config', :pci_devs => ['0/7/0', '0000:00:08.0']) + }.to raise_error(Puppet::Error, /Incorrect PCI dev address/) + end + + it 'should accept valid states' do + @vpp_service[:state] = :up + expect(@vpp_service[:state]).to eq(:up) + @vpp_service[:state] = :down + expect(@vpp_service[:state]).to eq(:down) + end + + it 'should not accept invalid state' do + expect { + @vpp_service[:state] = :shut + }.to raise_error(Puppet::Error, /Invalid value/) + end + + it 'should accept valid copy_kernel_nic_ip' do + @vpp_service[:copy_kernel_nic_ip] = :true + expect(@vpp_service[:copy_kernel_nic_ip]).to eq(:true) + @vpp_service[:copy_kernel_nic_ip] = :false + expect(@vpp_service[:copy_kernel_nic_ip]).to eq(:false) + end + + it 'should not accept invalid copy_kernel_nic_ip' do + expect { + @vpp_service[:copy_kernel_nic_ip] = :yes + }.to raise_error(Puppet::Error, /Invalid value/) + end + +end |