App-MtAws
view release on metacpan or search on metacpan
t/unit/config_engine_parse.t view on Meta::CPAN
#
my $max_concurrency = 30;
my $too_big_concurrency = $max_concurrency+1;
sub assert_config_throw_error($$$)
{
my ($config, $errorre, $text) = @_;
fake_config %$config => sub {
disable_validations 'journal' => sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ', $_ ));
ok( $errors && $errors->[0] =~ $errorre, $text);
}
}
}
{
fake_config sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
'sync --dir x --config y -journal z -to-va va -conc 9 --partsize=2 --from-dir z'
));
ok( $errors && $errors->[0] =~ /specified.*already defined/, 'delect already defined deprecated parameter');
ok( $warnings &&
($warnings->[0] =~ /to-vault deprecated, use vault instead/) ||
($warnings->[1] =~ /to-vault deprecated, use vault instead/),
'delect already defined deprecated parameter');
}
}
{
fake_config sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
'sync --config y -journal z -to-va va -conc 9 --partsize=2 --from-dir z'
));
ok( !$errors && $warnings && $warnings->[0] =~ /deprecated,\s*use.*instead/, 'warn about deprecated parameter');
}
}
{
fake_config sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
"sync --dir x --config y -journal z -to-va va -conc $too_big_concurrency --partsize=8 "
));
ok( $errors && $errors->[0] =~ /Max concurrency/, 'check concurrency range');
}
}
{
fake_config sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
'sync --dir x --config y -journal z -to-va va -conc 9 --partsize=3 '
));
ok( $errors && $errors->[0] =~ /must be power of two/, 'check partsize');
}
}
{
fake_config sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
'purge-vault --config=glacier.cfg --dir /data/backup --to-vault=myvault -journal=journal.log'
));
ok( !$errors && $warnings && $result, "should accept dir just like from-dir" );
}
}
{
fake_config key=>'mykey', secret => 'mysecret', region => 'myregion', vault => 'newvault', sub {
my ($errors, $warnings, $command, $result)= config_create_and_parse(split(' ',
'purge-vault --config=glacier.cfg --vault=myvault -journal=journal.log'
));
ok( !$errors && !$warnings && $result && $result->{vault} eq 'myvault', "should override vault in command line" );
}
}
{
fake_config key=>'mykey', secret => 'mysecret', region => 'myregion', vault => 'newvault', sub {
my ($errors, $warnings, $command, $result)= config_create_and_parse(split(' ',
'purge-vault --key=newkey -secret=newsecret --region newregion --vault=myvault -journal=journal.log'
));
ok( !$errors && !$warnings && $result && $result->{key} eq 'newkey' && $result->{secret} eq 'newsecret' && $result->{region} eq 'newregion', "should work without config" );
}
}
{
fake_config key=>'mykey', secret => 'mysecret', region => 'myregion', vault => 'newvault', sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
'purge-vault --config=glacier.cfg -journal=journal.log'
));
ok( !$errors && !$warnings && $result && $result->{vault} eq 'newvault', "should use vault from config" );
}
}
{
fake_config key=>'mykey', secret => 'mysecret', region => 'myregion', vault => 'newvault', sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
'purge-vault --config=glacier.cfg --to-vault=myvault -journal=journal.log'
));
ok( !$errors && $warnings && $result && $result->{vault} eq 'myvault', "should override vault in command line when deprecated-name is used in command line" );
}
}
{
fake_config key=>'mykey', secret => 'mysecret', region => 'myregion', vault => 'newvault', sub {
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
''
));
ok( $errors && $errors->[0] eq 'Please specify command', "should catch missing command" );
}
}
{
fake_config key=>'mykey', secret => 'mysecret', region => 'myregion', vault => 'newvault', sub {
local $SIG{__WARN__} = sub {}; # TODO: now suppress warnings, test for actual warning?
my ($errors, $warnings, $command, $result) = config_create_and_parse(split(' ',
'--myvault x'
));
ok( $errors, "should catch missing command even if there are options" );
}
}
( run in 0.571 second using v1.01-cache-2.11-cpan-5a3173703d6 )