10 package My::Meta::Class;
11 use base 'Class::MOP::Class';
13 sub rebless_instance_away {
15 shift->SUPER::rebless_instance_away(@_);
21 use metaclass 'My::Meta::Class';
24 use metaclass 'My::Meta::Class';
28 my $person = Parent->meta->new_object;
29 Child->meta->rebless_instance($person);
31 is(@calls, 1, "one call to rebless_instance_away");
32 is($calls[0][0]->name, 'Parent', 'rebless_instance_away is called on the old metaclass');
33 is($calls[0][1], $person, 'with the instance');
34 is($calls[0][2]->name, 'Child', 'and the new metaclass');
37 Child->meta->rebless_instance($person, foo => 1);
38 is($calls[0][0]->name, 'Child');
39 is($calls[0][1], $person);
40 is($calls[0][2]->name, 'Child');
41 is($calls[0][3], 'foo');