diff options
Diffstat (limited to 'spec/acceptance/tests')
| -rw-r--r-- | spec/acceptance/tests/create_spec.rb | 31 | ||||
| -rw-r--r-- | spec/acceptance/tests/destroy_spec.rb | 41 | ||||
| -rw-r--r-- | spec/acceptance/tests/modify_spec.rb | 42 | ||||
| -rw-r--r-- | spec/acceptance/tests/query_spec.rb | 35 |
4 files changed, 149 insertions, 0 deletions
diff --git a/spec/acceptance/tests/create_spec.rb b/spec/acceptance/tests/create_spec.rb new file mode 100644 index 0000000..82adfec --- /dev/null +++ b/spec/acceptance/tests/create_spec.rb @@ -0,0 +1,31 @@ +require 'spec_helper_acceptance' + +RSpec.context 'Mailalias: should create an email alias' do + name = "pl#{rand(999_999).to_i}" + + before(:all) do + non_windows_agents.each do |agent| + on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1]) + end + end + + after(:all) do + non_windows_agents.each do |agent| + on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1]) + end + end + + non_windows_agents.each do |agent| + it 'creates a mailalias with puppet' do + args = ['ensure=present', + 'recipient="foo,bar,baz"'] + on(agent, puppet_resource('mailalias', name, args)) + end + + it 'verifies the alias exists' do + on(agent, 'cat /etc/aliases') do |res| + assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file') + end + end + end +end diff --git a/spec/acceptance/tests/destroy_spec.rb b/spec/acceptance/tests/destroy_spec.rb new file mode 100644 index 0000000..0f805a5 --- /dev/null +++ b/spec/acceptance/tests/destroy_spec.rb @@ -0,0 +1,41 @@ +require 'spec_helper_acceptance' + +RSpec.context 'should delete an email alias' do + name = "pl#{rand(999_999).to_i}" + + before(:all) do + non_windows_agents.each do |agent| + # (setup) backup alias file + on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1]) + + # (setup) create a mailalias + on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases") + + # (setup) verify the alias exists + on(agent, 'cat /etc/aliases') do |res| + assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file') + end + end + end + + after(:all) do + non_windows_agents.each do |agent| + # (teardown) restore the alias file + on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1]) + end + end + + non_windows_agents.each do |agent| + it 'deletes the aliases database with puppet' do + args = ['ensure=absent', + 'recipient="foo,bar,baz"'] + on(agent, puppet_resource('mailalias', name, args)) + end + + it 'verifies the alias is absent' do + on(agent, 'cat /etc/aliases') do |res| + assert_no_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias was not removed from aliases file') + end + end + end +end diff --git a/spec/acceptance/tests/modify_spec.rb b/spec/acceptance/tests/modify_spec.rb new file mode 100644 index 0000000..f4ea7bf --- /dev/null +++ b/spec/acceptance/tests/modify_spec.rb @@ -0,0 +1,42 @@ +require 'spec_helper_acceptance' + +RSpec.context 'should modify an email alias' do + name = "pl#{rand(999_999).to_i}" + + before(:all) do + non_windows_agents.each do |agent| + #------- SETUP -------# + # (setup) backup alias file + on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1]) + + # (setup) create a mailalias + on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases") + + # (setup) verify the alias exists + on(agent, 'cat /etc/aliases') do |res| + assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file') + end + end + end + + after(:all) do + non_windows_agents.each do |agent| + # (teardown) restore the alias file + on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1]) + end + end + + non_windows_agents.each do |agent| + it 'modifies the aliases database with puppet' do + args = ['ensure=present', + 'recipient="foo,bar,baz,blarvitz"'] + on(agent, puppet_resource('mailalias', name, args)) + end + + it 'verifies the updated alias is present' do + on(agent, 'cat /etc/aliases') do |res| + assert_match(%r{#{name}:.*foo,bar,baz,blarvitz}, res.stdout, 'updated mailalias not in aliases file') + end + end + end +end diff --git a/spec/acceptance/tests/query_spec.rb b/spec/acceptance/tests/query_spec.rb new file mode 100644 index 0000000..17e0bbf --- /dev/null +++ b/spec/acceptance/tests/query_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper_acceptance' + +RSpec.context 'should be able to find an exisitng email alias' do + name = "pl#{rand(999_999).to_i}" + + before(:all) do + non_windows_agents.each do |agent| + # (setup) backup alias file + on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1]) + + # (setup) create a mailalias + on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases") + + # (setup) verify the alias exists + on(agent, 'cat /etc/aliases') do |res| + assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file') + end + end + end + + after(:all) do + non_windows_agents.each do |agent| + # (teardown) restore the alias file + on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1]) + end + end + + non_windows_agents.each do |agent| + it 'queries for the mail alias with puppet' do + on(agent, puppet_resource('mailalias', name)) do + fail_test "didn't find the scheduled_task #{name}" unless stdout.include? 'present' + end + end + end +end |
