-
Guillaume ROUSSE authoredGuillaume ROUSSE authored
account-manager.t 6.63 KiB
#!/usr/bin/perl
use strict;
use warnings;
use English qw(-no_match_vars);
use File::Temp;
use IPC::Run qw(run);
use Test::More;
plan tests => 48;
my ($out, $err, $rc);
($out, $err, $rc) = run_executable('account-manager.pl', '--help');
ok($rc == 0, '--help exit status');
is($err, '', '--help stderr');
like(
$out,
qr/^Usage:/,
'--help stdout'
);
($out, $err, $rc) = run_executable('account-manager.pl');
ok($rc == 2, 'no action exit status');
like(
$err,
qr/no action given, aborting/,
'no action stderr'
);
is($out, '', 'no action stdout');
SKIP: {
skip 'live database required', 15 unless
$ENV{TEST_DB_TYPE} &&
$ENV{TEST_DB_HOST} &&
$ENV{TEST_DB_NAME} &&
$ENV{TEST_DB_USER} &&
$ENV{TEST_DB_PASSWORD};
my $config_file = File::Temp->new(UNLINK => $ENV{TEST_DEBUG} ? 0 : 1);
my $accounts_file = File::Temp->new(UNLINK => $ENV{TEST_DEBUG} ? 0 : 1);
print {$config_file} <<EOF;
tokens_validity_period = 2
templates_dir = templates
[idp]
accounts_file = $accounts_file
scope = localhost
[service]
account_validity_period = 2
[database]
type = $ENV{TEST_DB_TYPE}
host = $ENV{TEST_DB_HOST}
name = $ENV{TEST_DB_NAME}
user = $ENV{TEST_DB_USER}
password = $ENV{TEST_DB_PASSWORD}
EOF
$config_file->flush();
# reset database content
($out, $err, $rc) = run_executable(
'account-manager.pl',
"--config $config_file list_accounts --delete"
);
ok($rc == 0, 'delete accounts exit status');
is($err, '', 'delete accounts stderr output');