From: Dave Rolsky Date: Sat, 17 Sep 2011 02:13:10 +0000 (-0500) Subject: Test that UNIVERSAL methods are found through all method introspection methods X-Git-Tag: 2.0300~22 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=928330d86c503f86a6747b00015d34c63162e4b6;p=gitmo%2FMoose.git Test that UNIVERSAL methods are found through all method introspection methods --- diff --git a/t/cmop/universal_methods.t b/t/cmop/universal_methods.t index 6d00160..0d3d646 100644 --- a/t/cmop/universal_methods.t +++ b/t/cmop/universal_methods.t @@ -6,13 +6,33 @@ use Class::MOP; my $meta_class = Class::MOP::Class->create_anon_class; +my %methods = map { $_->name => 1 } $meta_class->get_all_methods(); +my %method_names = map { $_ => 1 } $meta_class->get_all_method_names(); + my @universal_methods = qw/isa can VERSION/; push @universal_methods, 'DOES' if $] >= 5.010; -TODO: { - for my $method ( @universal_methods ) { - ok $meta_class->find_method_by_name($method), "has UNIVERSAL method $method"; - } -}; +for my $method (@universal_methods) { + ok( + $meta_class->find_method_by_name($method), + "find_method_by_name finds UNIVERSAL method $method" + ); + ok( + $meta_class->find_next_method_by_name($method), + "find_next_method_by_name finds UNIVERSAL method $method" + ); + ok( + scalar $meta_class->find_all_methods_by_name($method), + "find_all_methods_by_name finds UNIVERSAL method $method" + ); + ok( + $methods{$method}, + "get_all_methods includes $method from UNIVERSAL" + ); + ok( + $method_names{$method}, + "get_all_method_names includes $method from UNIVERSAL" + ); +} done_testing;