From 3fbe51b6a78ba8ad69f1e52e7496ac7b6f5a3317 Mon Sep 17 00:00:00 2001 From: zhubingbing Date: Thu, 19 Apr 2018 09:12:30 +0800 Subject: [PATCH] Fix unit test for config.pp Change-Id: Icab833523a1f8a8ddd11f618a20ff06c1c68fa9e --- spec/classes/ceilometer_config_spec.rb | 51 ++++++++++++++++++-------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/spec/classes/ceilometer_config_spec.rb b/spec/classes/ceilometer_config_spec.rb index 44fdbba..5df034f 100644 --- a/spec/classes/ceilometer_config_spec.rb +++ b/spec/classes/ceilometer_config_spec.rb @@ -2,28 +2,47 @@ require 'spec_helper' describe 'ceilometer::config' do - let :params do - { :ceilometer_config => { - 'api/host' => { 'value' => '0.0.0.0'}, - 'api/port' => { 'value' => '8777'}, - }, - } + let(:config_hash) do { + 'DEFAULT/foo' => { 'value' => 'fooValue' }, + 'DEFAULT/bar' => { 'value' => 'barValue' }, + 'DEFAULT/baz' => { 'ensure' => 'absent' } + } end - it 'with [api] options ceilometer_config ' do - is_expected.to contain_ceilometer_config('api/host').with_value('0.0.0.0') - is_expected.to contain_ceilometer_config('api/port').with_value('8777') + shared_examples_for 'ceilometer_config' do + let :params do + { :ceilometer_config => config_hash } end - describe 'with [rpc_notifier2] options ceilometer_config' do - before do - params.merge!({ - :ceilometer_config => { 'rpc_notifier2/topics' => { 'value' => 'notifications'},}, - }) + it 'configures arbitrary ceilometer-config configurations' do + is_expected.to contain_ceilometer_config('DEFAULT/foo').with_value('fooValue') + is_expected.to contain_ceilometer_config('DEFAULT/bar').with_value('barValue') + is_expected.to contain_ceilometer_config('DEFAULT/baz').with_ensure('absent') end - it 'should configure rpc_notifier2 topics correctly' do - is_expected.to contain_ceilometer_config('rpc_notifier2/topics').with_value('notifications') + end + + shared_examples_for 'ceilometer_api_paste_ini' do + let :params do + { :ceilometer_api_paste_ini => config_hash } end + it 'configures arbitrary ceilometer-api-paste-ini configurations' do + is_expected.to contain_ceilometer_api_paste_ini('DEFAULT/foo').with_value('fooValue') + is_expected.to contain_ceilometer_api_paste_ini('DEFAULT/bar').with_value('barValue') + is_expected.to contain_ceilometer_api_paste_ini('DEFAULT/baz').with_ensure('absent') + end + end + + on_supported_os({ + :supported_os => OSDefaults.get_supported_os + }).each do |os,facts| + context "on #{os}" do + let (:facts) do + facts.merge!(OSDefaults.get_facts()) + end + + it_configures 'ceilometer_config' + it_configures 'ceilometer_api_paste_ini' + end end end -- 2.45.2