From 9326e4237f4d161f297dc4493ab4928ea6e2bf0f Mon Sep 17 00:00:00 2001 From: Feng Pan Date: Mon, 7 Nov 2016 19:22:21 -0500 Subject: Initial Commit. Change-Id: I212ec4be42357edddd931e9e479e33131ccd4bac Signed-off-by: Feng Pan --- spec/unit/provider/vpp_service/vpp_spec.rb | 46 ++++++++++++++++++++++++ spec/unit/type/vpp_service_spec.rb | 56 ++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 spec/unit/provider/vpp_service/vpp_spec.rb create mode 100644 spec/unit/type/vpp_service_spec.rb (limited to 'spec/unit') 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 -- cgit 1.2.3-korg