use strict;
use warnings;
use Test::More tests => 63;
use Module::Format::Module;
{
my $module = Module::Format::Module->from(
{
format => 'colon',
value => 'XML::Grammar::Fiction',
}
);
# TEST
ok ($module);
# TEST
is_deeply(
$module->get_components_list(),
[qw(XML Grammar Fiction)],
"get_components_list() is sane.",
);
# TEST
is ($module->format_as('colon'), 'XML::Grammar::Fiction',
"Format as colon is sane."
);
# TEST
is ($module->format_as('dash'), 'XML-Grammar-Fiction',
"Format as dash is sane.",
);
# TEST
is ($module->format_as('unix'), 'XML/Grammar/Fiction.pm',
"Format as unix is sane.",
);
# TEST
is ($module->format_as('rpm_dash'), 'perl-XML-Grammar-Fiction',
"Format as rpm_dash is sane.",
);
# TEST
is ($module->format_as('rpm_colon'), 'perl(XML::Grammar::Fiction)',
"Format as rpm_colon is sane.",
);
# TEST
is ($module->format_as('debian'), 'libxml-grammar-fiction-perl',
"Format as debian is sane.",
);
}
{
my $module = Module::Format::Module->from(
{
format => 'dash',
value => 'HTML-TreeBuilder-LibXML',
}
);
# TEST
ok ($module);
# TEST
is_deeply(
$module->get_components_list(),
[qw(HTML TreeBuilder LibXML)],
"get_components_list() is sane.",
);
# TEST
is ($module->format_as('colon'), 'HTML::TreeBuilder::LibXML',
"Format as colon is sane."
);
# TEST
is ($module->format_as('dash'), 'HTML-TreeBuilder-LibXML',
"Format as dash is sane.",
);
}
{
my $module = Module::Format::Module->from(
{
format => 'unix',
value => 'HTML/TreeBuilder/LibXML.pm',
}
);
# TEST
ok ($module);
# TEST
is_deeply(
$module->get_components_list(),
[qw(HTML TreeBuilder LibXML)],
"get_components_list() is sane.",
);
# TEST
is ($module->format_as('colon'), 'HTML::TreeBuilder::LibXML',
"Format as colon is sane."
);
# TEST
is ($module->format_as('dash'), 'HTML-TreeBuilder-LibXML',
"Format as dash is sane.",
);
}
{
my $module = Module::Format::Module->from(
{
format => 'rpm_colon',
value => 'perl(HTML::TreeBuilder::LibXML)',
}
);
# TEST
ok ($module);
# TEST
is_deeply(
$module->get_components_list(),
[qw(HTML TreeBuilder LibXML)],
"from rpm_colon get_components_list() is sane.",
);
# TEST
is ($module->format_as('colon'), 'HTML::TreeBuilder::LibXML',
"from rpm_colon Format as colon is sane."
);
# TEST
is ($module->format_as('dash'), 'HTML-TreeBuilder-LibXML',
"from rpm_colon Format as dash is sane.",
);
}
{
my $module = Module::Format::Module->from(
{
format => 'rpm_dash',
value => 'perl-HTML-TreeBuilder-LibXML',
}
);
# TEST
ok ($module);
# TEST
is_deeply(
$module->get_components_list(),
[qw(HTML TreeBuilder LibXML)],
"get_components_list() is sane.",
);
# TEST
is ($module->format_as('colon'), 'HTML::TreeBuilder::LibXML',
"Format as colon is sane."
);
# TEST
is ($module->format_as('dash'), 'HTML-TreeBuilder-LibXML',
"Format as dash is sane.",
);
}
{
my $orig_module = Module::Format::Module->from(
{
format => 'colon',
value => 'XML::Grammar::Fiction',
}
);
# TEST
ok ($orig_module, '$orig_module is defined');
my $clone = $orig_module->clone();
# TEST
ok ($clone, '$clone is defined');
# TEST
is_deeply(
$clone->get_components_list(),
[qw(XML Grammar Fiction)],
"get_components_list() is sane.",
);
# TEST
is ($clone->format_as('colon'), 'XML::Grammar::Fiction',
"Format as colon is sane."
);
# TEST
is ($clone->format_as('dash'), 'XML-Grammar-Fiction',
"Format as dash is sane.",
);
# TEST
is ($clone->format_as('unix'), 'XML/Grammar/Fiction.pm',
"Format as unix is sane.",
);
# TEST
is ($clone->format_as('rpm_dash'), 'perl-XML-Grammar-Fiction',
"Format as rpm_dash is sane.",
);
# TEST
is ($clone->format_as('rpm_colon'), 'perl(XML::Grammar::Fiction)',
"Format as rpm_colon is sane.",
);
}
{
my $module = Module::Format::Module->from_components(
{
components => [qw(XML Grammar Fiction)],
}
);
# TEST
ok ($module, '$module is defined');
# TEST
ok ($module, '$clone is defined');
# TEST
is_deeply(
$module->get_components_list(),
[qw(XML Grammar Fiction)],
"get_components_list() is sane.",
);
# TEST
is ($module->format_as('colon'), 'XML::Grammar::Fiction',
"Format as colon is sane."
);
# TEST
is ($module->format_as('dash'), 'XML-Grammar-Fiction',
"Format as dash is sane.",
);
# TEST
is ($module->format_as('unix'), 'XML/Grammar/Fiction.pm',
"Format as unix is sane.",
);
# TEST
is ($module->format_as('rpm_dash'), 'perl-XML-Grammar-Fiction',
"Format as rpm_dash is sane.",
);
# TEST
is ($module->format_as('rpm_colon'), 'perl(XML::Grammar::Fiction)',
"Format as rpm_colon is sane.",
);
}
{
my $module = Module::Format::Module->from_components(
{
components => [qw(XML Grammar Fiction)],
}
);
# TEST
ok (scalar($module->is_sane()), "Module is sane.");
}
{
my $module = Module::Format::Module->from_components(
{
components => ['XML', 'F@L',],
}
);
# TEST
ok (!scalar($module->is_sane()), "Module is not sane.");
}
{
my $module = Module::Format::Module->from_guess({value => "XML::RSS"});
# TEST
ok ($module, "from_guess initialises a module.");
# TEST
is_deeply(
$module->get_components_list(),
[qw(XML RSS)],
"from_guess got good components.",
);
}
{
my $chosen_format;
my $module = Module::Format::Module->from_guess(
{
value => 'perl(Acme::Hello::Descriptive)',
format_ref => \$chosen_format,
}
);
# TEST
ok ($module, "from_guess initialises a module.");
# TEST
is_deeply(
$module->get_components_list(),
[qw(Acme Hello Descriptive)],
"from_guess got good components.",
);
# TEST
is ($chosen_format, 'rpm_colon', 'chosen format was initialised');
}
{
my $chosen_format;
my $module = Module::Format::Module->from_guess(
{
value => 'perl-Acme-Hello-Please',
format_ref => \$chosen_format,
}
);
# TEST
ok ($module, "from_guess initialises a module.");
# TEST
is_deeply(
$module->get_components_list(),
[qw(Acme Hello Please)],
"from_guess got good components.",
);
# TEST
is ($chosen_format, 'rpm_dash', 'chosen format was initialised');
# TEST
is ($module->format_as('dash'), 'Acme-Hello-Please',
"format_as works for from_guess()ed module",
);
}
{
my $chosen_format;
my $module = Module::Format::Module->from_guess(
{
value => 'Acme-Raise-Kwalitee',
format_ref => \$chosen_format,
}
);
# TEST
ok ($module, "from_guess initialises a module.");
# TEST
is_deeply(
$module->get_components_list(),
[qw(Acme Raise Kwalitee)],
"from_guess got good components.",
);
# TEST
is ($chosen_format, 'dash', 'chosen format was initialised');
# TEST
is ($module->format_as('rpm_colon'), 'perl(Acme::Raise::Kwalitee)',
"format_as works for from_guess()ed module",
);
}
{
my $chosen_format;
my $module = Module::Format::Module->from_guess(
{
value => 'Foo::Bar::Baz',
format_ref => \$chosen_format,
}
);
# TEST
ok ($module, "from_guess initialises a module.");
# TEST
is_deeply(
$module->get_components_list(),
[qw(Foo Bar Baz)],
"from_guess got good components.",
);
# TEST
is ($chosen_format, 'colon', 'chosen format is colon in this case');
# TEST
is ($module->format_as('dash'), 'Foo-Bar-Baz',
"format_as works for from_guess()ed colon module",
);
}
{
my $chosen_format;
my $module = Module::Format::Module->from_guess(
{
value => 'MooseX/Role/BuildInstanceOf.pm',
format_ref => \$chosen_format,
}
);
# TEST
ok ($module, "from_guess initialises a module.");
# TEST
is_deeply(
$module->get_components_list(),
[qw(MooseX Role BuildInstanceOf)],
"from_guess got good components.",
);
# TEST
is ($chosen_format, 'unix', 'chosen format was initialised');
# TEST
is ($module->format_as('dash'), 'MooseX-Role-BuildInstanceOf',
"format_as works for from_guess()ed module",
);
}