| 1 | use Test::More; |
| 2 | use Test::Pod::Coverage; |
| 3 | use Test::Exception; |
| 4 | |
| 5 | use lib 'lib'; |
| 6 | use_ok 'Exim::Runtest' or BAIL_OUT 'Can not load the module'; |
| 7 | |
| 8 | can_ok 'Exim::Runtest', qw(mailgroup dynamic_socket); |
| 9 | pod_coverage_ok 'Exim::Runtest' => 'docs complete'; |
| 10 | |
| 11 | subtest 'mailgroup' => sub { |
| 12 | my $group = getgrgid $(; |
| 13 | ok $group => 'got a group name'; |
| 14 | note "use group $group"; |
| 15 | |
| 16 | is Exim::Runtest::mailgroup($group), $group => 'group names match'; |
| 17 | ok $group = Exim::Runtest::mailgroup('non existing group') => 'cope with unknown group'; |
| 18 | note "got random group: $group"; |
| 19 | |
| 20 | ok getgrnam($group) => 'got an existing group'; |
| 21 | |
| 22 | dies_ok { Exim::Runtest::mailgroup(22) } 'dies on numeric group'; |
| 23 | dies_ok { Exim::Runtest::mailgroup() } 'dies on missing default group'; |
| 24 | }; |
| 25 | |
| 26 | subtest 'dynamic_socket' => sub { |
| 27 | ok my $socket = Exim::Runtest::dynamic_socket() => 'got a socket'; |
| 28 | note "got socket on port @{[$socket->sockport]}"; |
| 29 | isa_ok $socket => 'IO::Socket::INET'; |
| 30 | cmp_ok $socket->sockport(), '>=', 1024 => 'port is >= 1024'; |
| 31 | $socket->close; |
| 32 | }; |
| 33 | |
| 34 | |
| 35 | done_testing; |