#!/usr/bin/perl
use perl5i::latest;
use lib 't/lib';
use Test::More;
use Test::perl5i;
note "Test some simple symetrical conversions"; {
my %mod2path = (
CGI => "CGI.pm",
"File::Spec" => "File/Spec.pm",
"A::B::C" => "A/B/C.pm",
"å::1::2" => "å/1/2.pm",
);
for my $mod (keys %mod2path) {
my $path = $mod2path{$mod};
is $mod->module2path, $path;
is $path->path2module, $mod;
}
}
note "Invalid module paths"; {
my @bad_paths = (
"/foo/bar/baz.pm",
"Not/A/Module",
"Foo/Bar/Baz.pm/",
);
for my $path (@bad_paths) {
throws_ok { $path->path2module } qr/^'$path' does not look like a Perl module path/;
}
}
note "Invalid module names"; {
my @bad_modules = (
"::tmp::owned",
"f/../../owned",
"/tmp::LOL::PWNED",
);
for my $module (@bad_modules) {
throws_ok { $module->module2path } qr/^'\Q$module\E' is not a valid module name/;
}
}
done_testing();