| Current Path : /usr/share/doc/perl-Class-Mix/t/ |
| Current File : //usr/share/doc/perl-Class-Mix/t/mro_no.t |
use warnings;
use strict;
BEGIN {
if("$]" >= 5.009005) {
require Test::More;
Test::More::plan(skip_all => "MRO available on this Perl");
}
}
use Test::More tests => 18;
BEGIN { use_ok "Class::Mix", qw(mix_class); }
{ package Foo; }
{ package Bar; }
{ package Baz; }
# error cases
foreach(
{mro=>[]},
{mro=>undef},
{mro=>"wibble"},
{mro=>"c3"},
) {
eval { mix_class($_) };
isnt $@, "";
eval { mix_class("Foo", $_) };
isnt $@, "";
eval { mix_class("Foo", "Bar", $_) };
isnt $@, "";
}
# OK cases
no strict "refs";
is mix_class({mro=>"dfs"}), "UNIVERSAL";
is mix_class("Foo", {mro=>"dfs"}), "Foo";
my $foobar = mix_class("Foo", "Bar", {mro=>"dfs"});
is_deeply(\@{$foobar."::ISA"}, ["Foo", "Bar"]);
is mix_class({mro=>"dfs"}, "Foo", "Bar"), $foobar;
is mix_class("Foo", "Bar"), $foobar;
1;