aboutsummaryrefslogtreecommitdiffstats
path: root/spec/unit
diff options
context:
space:
mode:
authorFeng Pan <fpan@redhat.com>2016-11-07 19:22:21 -0500
committerFeng Pan <fpan@redhat.com>2016-11-21 21:27:09 -0500
commit9326e4237f4d161f297dc4493ab4928ea6e2bf0f (patch)
tree25372fa964fe84b160c5bfc58304285902edbefc /spec/unit
parentc70bea9fb9cd5dfb29d7ab8f7aaae7324c31f1e3 (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.rb46
-rw-r--r--spec/unit/type/vpp_service_spec.rb56
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