+++ /dev/null
-use strict;
-use warnings;
-use Test::More tests => 10;
-
-{
- package Ball;
- use Mouse;
-}
-
-{
- package Arbitrary::Roll;
- use Mouse::Role;
-}
-
-my $method_meta = Mouse::Meta::Class->create_anon_class(
- superclasses => ['Mouse::Meta::Method'],
- roles => ['Arbitrary::Roll'],
-);
-
-# For comparing identity without actually keeping $original_meta around
-my $original_meta = "$method_meta";
-
-my $method_class = $method_meta->name;
-
-my $method_object = $method_class->wrap(
- sub {'ok'},
- associated_metaclass => Ball->meta,
- package_name => 'Ball',
- name => 'bounce',
-);
-
-Ball->meta->add_method( bounce => $method_object );
-
-for ( 1, 2 ) {
- is( Ball->bounce, 'ok', "method still exists on Ball" );
- is( Ball->meta->get_method('bounce')->meta->name, $method_class,
- "method's package still exists" );
-
- is( Ball->meta->get_method('bounce'), $method_object,
- 'original method object is preserved' );
-
- is( Ball->meta->get_method('bounce')->meta . '', $original_meta,
- "method's metaclass still exists" );
- ok( Ball->meta->get_method('bounce')->meta->does_role('Arbitrary::Roll'),
- "method still does Arbitrary::Roll" );
-
- undef $method_meta;
-}