diff --git a/acceptance/tests/resource/mailalias/create.rb b/acceptance/tests/resource/mailalias/create.rb new file mode 100644 index 000000000..94ff0c0f9 --- /dev/null +++ b/acceptance/tests/resource/mailalias/create.rb @@ -0,0 +1,35 @@ +test_name "should create an email alias and update db" + +name = "pl#{rand(999999).to_i}" + +agents.each do |agent| + teardown do + #(teardown) delete the aliases database + on(agent, "rm /etc/aliases.db") + + #(teardown) restore the alias file + on(agent, "mv /tmp/aliases /etc/aliases", :acceptable_exit_codes => [0,1]) + on(agent, "newaliases") + end + + #------- SETUP -------# + step "(setup) backup alias file" + on(agent, "cp /etc/aliases /tmp/aliases", :acceptable_exit_codes => [0,1]) + + #------- TESTS -------# + step "create a mailalias with puppet" + args = ['ensure=present', + 'recipient="foo,bar,baz"'] + on(agent, puppet_resource('mailalias', name, args)) + + step "verify the alias exists" + on(agent, "cat /etc/aliases") do |res| + assert_match(/#{name}:.*foo,bar,baz/, res.stdout, "mailalias not in aliases file") + end + + step "verify name is in aliases.db" + on(agent, "grep #{name} /etc/aliases.db", :acceptable_exit_codes => [0,1]) do |res| + assert_match(/matches/, res.output, "mailalias not in aliases.db") + end + +end diff --git a/acceptance/tests/resource/mailalias/destroy.rb b/acceptance/tests/resource/mailalias/destroy.rb new file mode 100644 index 000000000..3d9d83c57 --- /dev/null +++ b/acceptance/tests/resource/mailalias/destroy.rb @@ -0,0 +1,47 @@ +test_name "should delete an email alias and update db" + +name = "pl#{rand(999999).to_i}" + +agents.each do |agent| + teardown do + #(teardown) restore the alias file + on(agent, "mv /tmp/aliases /etc/aliases", :acceptable_exit_codes => [0,1]) + on(agent, "newaliases") + end + + #------- SETUP -------# + step "(setup) backup alias file" + on(agent, "cp /etc/aliases /tmp/aliases", :acceptable_exit_codes => [0,1]) + + step "(setup) create a mailalias" + on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases") + on(agent, "newaliases") + + step "(setup) verify the alias exists" + on(agent, "cat /etc/aliases") do |res| + assert_match(/#{name}:.*foo,bar,baz/, res.stdout, "mailalias not in aliases file") + end + + step "(setup) verify name is in aliases.db" + on(agent, "grep #{name} /etc/aliases.db", :acceptable_exit_codes => [0,1]) do |res| + assert_match(/matches/, res.output, "mailalias not in aliases.db") + end + + #------- TESTS -------# + step "delete the aliases database with puppet" + args = ['ensure=absent', + 'recipient="foo,bar,baz"'] + on(agent, puppet_resource('mailalias', name, args)) + + + step "verify the alias is absent" + on(agent, "cat /etc/aliases") do |res| + assert_no_match(/#{name}:.*foo,bar,baz/, res.stdout, "mailalias was not removed from aliases file") + end + + step "verify name is not in aliases.db" + on(agent, "grep #{name} /etc/aliases.db", :acceptable_exit_codes => [0,1]) do |res| + assert_no_match(/matches/, res.output, "mailalias was not removed from aliases.db") + end + +end diff --git a/acceptance/tests/resource/mailalias/modify.rb b/acceptance/tests/resource/mailalias/modify.rb new file mode 100644 index 000000000..be3a1450b --- /dev/null +++ b/acceptance/tests/resource/mailalias/modify.rb @@ -0,0 +1,47 @@ +test_name "should modify an email alias and update db" + +name = "pl#{rand(999999).to_i}" + +agents.each do |agent| + teardown do + #(teardown) restore the alias file + on(agent, "mv /tmp/aliases /etc/aliases", :acceptable_exit_codes => [0,1]) + on(agent, "newaliases") + end + + #------- SETUP -------# + step "(setup) backup alias file" + on(agent, "cp /etc/aliases /tmp/aliases", :acceptable_exit_codes => [0,1]) + + step "(setup) create a mailalias" + on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases") + on(agent, "newaliases") + + step "(setup) verify the alias exists" + on(agent, "cat /etc/aliases") do |res| + assert_match(/#{name}:.*foo,bar,baz/, res.stdout, "mailalias not in aliases file") + end + + step "(setup) verify name is in aliases.db" + on(agent, "grep #{name} /etc/aliases.db", :acceptable_exit_codes => [0,1]) do |res| + assert_match(/matches/, res.output, "mailalias not in aliases.db") + end + + #------- TESTS -------# + step "modify the aliases database with puppet" + args = ['ensure=present', + 'recipient="foo,bar,baz,blarvitz"'] + on(agent, puppet_resource('mailalias', name, args)) + + + step "verify the updated alias is present" + on(agent, "cat /etc/aliases") do |res| + assert_match(/#{name}:.*foo,bar,baz,blarvitz/, res.stdout, "updated mailalias not in aliases file") + end + + step "verify name is not in aliases.db" + on(agent, "grep blarvitz /etc/aliases.db", :acceptable_exit_codes => [0,1]) do |res| + assert_match(/matches/, res.output, "updated mailalias not in aliases.db") + end + +end diff --git a/acceptance/tests/resource/mailalias/query.rb b/acceptance/tests/resource/mailalias/query.rb new file mode 100644 index 000000000..65c8ea375 --- /dev/null +++ b/acceptance/tests/resource/mailalias/query.rb @@ -0,0 +1,36 @@ +test_name "should be able to find an exisitng email alias" + +name = "pl#{rand(999999).to_i}" + +agents.each do |agent| + teardown do + #(teardown) restore the alias file + on(agent, "mv /tmp/aliases /etc/aliases", :acceptable_exit_codes => [0,1]) + on(agent, "newaliases") + end + + #------- SETUP -------# + step "(setup) backup alias file" + on(agent, "cp /etc/aliases /tmp/aliases", :acceptable_exit_codes => [0,1]) + + step "(setup) create a mailalias" + on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases") + on(agent, "newaliases") + + step "(setup) verify the alias exists" + on(agent, "cat /etc/aliases") do |res| + assert_match(/#{name}:.*foo,bar,baz/, res.stdout, "mailalias not in aliases file") + end + + step "(setup) verify name is in aliases.db" + on(agent, "grep #{name} /etc/aliases.db", :acceptable_exit_codes => [0,1]) do |res| + assert_match(/matches/, res.output, "mailalias not in aliases.db") + end + + #------- TESTS -------# + step "query for the mail alias with puppet" + on(agent, puppet_resource('mailalias', name)) do + fail_test "didn't find the scheduled_task #{name}" unless stdout.include? 'present' + end + +end