require 'spec_helper' foo_log_conf = <<-EOS # foobar_foo input(type="imfile" file="/path/to/foo.log" tag="foo" startmsg.regex="test" ) EOS bar_log_conf = <<-EOS # foobar_bar input(type="imfile" file="/path/to/bar.log" tag="bar" startmsg.regex="baz" ) EOS describe 'tripleo::profile::base::logging::rsyslog::file_input' do let(:title) { 'foobar' } let :pre_condition do 'include ::rsyslog::server' end shared_examples_for 'tripleo::profile::base::logging::rsyslog::file_input' do context 'with basic parameters to configure rsyslog file inputs' do let :params do { 'sources' => [ {'file' => '/path/to/foo.log', 'tag' => 'foo'}, {'file' => '/path/to/bar.log', 'tag' => 'bar', 'startmsg.regex' => 'baz'} ], 'default_startmsg' => 'test' } end it 'should configure the given file inputs' do should contain_concat__fragment('rsyslog::component::input::foobar_foo').with({ :target => '/etc/rsyslog.d/50_rsyslog.conf', :content => foo_log_conf, }) should contain_concat__fragment('rsyslog::component::input::foobar_bar').with({ :target => '/etc/rsyslog.d/50_rsyslog.conf', :content => bar_log_conf, }) end end context 'with non-array sources to configure rsyslog file input' do let :params do { 'sources' => {'file' => '/path/to/foo.log', 'tag' => 'foo'}, 'default_startmsg' => 'test' } end it 'should configure the given file inputs' do should contain_concat__fragment('rsyslog::component::input::foobar_foo').with({ :target => '/etc/rsyslog.d/50_rsyslog.conf', :content => foo_log_conf, }) end end end on_supported_os.each do |os, facts| context "on #{os}" do let(:facts) do facts.merge({}) end it_behaves_like 'tripleo::profile::base::logging::rsyslog::file_input' end end end