X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fmetaclasses%2Foverloading.t;h=ba5f1d5e1e28be4c827314e2201d355884a9a506;hb=702be3d89ea803c8ece85c0bfaccfdff72f6cd0b;hp=3621dd9c845dbd2860b301ea7da999da5ec1ac0f;hpb=4a0bc88fdddbc5c840810dd31b8873c88ff85282;p=gitmo%2FMoose.git diff --git a/t/metaclasses/overloading.t b/t/metaclasses/overloading.t index 3621dd9..ba5f1d5 100644 --- a/t/metaclasses/overloading.t +++ b/t/metaclasses/overloading.t @@ -12,16 +12,18 @@ use Test::Fatal; { my $meta = Foo->meta; + ok(!$meta->is_overloaded); + is_deeply([sort $meta->overload_operators], [sort map { split /\s+/ } values %overload::ops]); ok(!$meta->has_overloaded_operator('+')); ok(!$meta->has_overloaded_operator('-')); - is_deeply([$meta->get_overloaded_operators], []); - is_deeply([$meta->get_overload_list], []); + is_deeply([$meta->get_all_overloaded_operators], []); + is($meta->get_overloaded_operator('+'), undef); is($meta->get_overloaded_operator('-'), undef); } @@ -38,12 +40,14 @@ BEGIN { $plus_impl = sub { $plus = 1; "plus" } } { my $meta = Foo::Overloaded->meta; + ok($meta->is_overloaded); + ok($meta->has_overloaded_operator('+')); ok(!$meta->has_overloaded_operator('-')); - is_deeply([$meta->get_overloaded_operators], ['+']); + is_deeply([$meta->get_overload_list], ['+']); - my @overloads = $meta->get_overload_list; + my @overloads = $meta->get_all_overloaded_operators; is(scalar(@overloads), 1); my $plus_meth = $overloads[0]; isa_ok($plus_meth, 'Class::MOP::Method::Overload'); @@ -75,9 +79,9 @@ BEGIN { $plus_impl = sub { $plus = 1; "plus" } } ok($meta->has_overloaded_operator('-')); - is_deeply([sort $meta->get_overloaded_operators], ['+', '-']); + is_deeply([sort $meta->get_overload_list], ['+', '-']); - is(scalar($meta->get_overload_list), 2); + is(scalar($meta->get_all_overloaded_operators), 2); my $minus_meth = $meta->get_overloaded_operator('-'); isa_ok($minus_meth, 'Class::MOP::Method::Overload'); @@ -90,6 +94,11 @@ BEGIN { $plus_impl = sub { $plus = 1; "plus" } } is($minus, 0); is(Foo::Overloaded->new - Foo::Overloaded->new, "minus"); is($minus, 1); + + $meta->remove_overloaded_operator('-'); + + like(exception { Foo::Overloaded->new - Foo::Overloaded->new }, + qr/Operation "-": no method found/); } done_testing;