#!/usr/bin/perl
use strict;
# create a directory and a file
my $sub = Test::CheckManifest->can('_validate_args');
ok $sub;
my $default = {
filter => [],
exclude => [ qw!/blib /_blib! ],
bool => 'or',
};
is_deeply [ $sub->( [], "hallo" ) ], [ $default, "hallo" ], 'Empty Arrayref';
is_deeply [ $sub->( { exclude => {} }, "hallo" ) ], [ $default, "hallo" ], 'exclude => {}';
is_deeply [ $sub->( { exclude => [] }, "hallo" ) ], [ $default, "hallo" ], 'exclude => []';
is_deeply [ $sub->( { exclude => 'test' }, "hallo" ) ], [ $default, "hallo" ], 'exclude => "test"';
is_deeply [ $sub->( { bool => {} }, "hallo" ) ], [ $default, "hallo" ], 'bool => {}';
is_deeply [ $sub->( { bool => 'or' }, "hallo" )], [ $default, "hallo" ], 'bool => "or"';
is_deeply [ $sub->( { bool => 'and' }, "hallo" )], [ { %$default, bool => 'and' }, "hallo" ], 'bool => "and"';
is_deeply [ $sub->( { bool => '1' }, "hallo" )], [ $default, "hallo" ], 'bool => "1"';
is_deeply [ $sub->( { filter => [] }, "hallo" ) ], [ $default, "hallo" ], 'filter -> arrayref';
is_deeply [ $sub->( { filter => {} }, "hallo" ) ], [ $default, "hallo" ], 'filter -> empty hashref';
is_deeply [ $sub->( { filter => 'test' }, "hallo" ) ], [ $default, "hallo" ], 'filter -> string';
is_deeply [ $sub->( { filter => [ 'hallo' ] }, "hallo" ) ], [ $default, "hallo" ], 'filter -> no regex';
{
my $error;
eval {
$sub->( { exclude => ['testing'] } );
1;
} or do {
$error = $@;
};
like $error, qr/path in excluded array must be "absolute"/, 'relative paths';
}
done_testing();