Skip to content

Commit

Permalink
todo test for replacing superclass versions of override methods (ether)
Browse files Browse the repository at this point in the history
  • Loading branch information
doy committed Apr 6, 2010
1 parent 9622220 commit d963b98
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions t/600_todo_tests/008_replacing_super_methods.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;

my ($super_called, $sub_called, $new_super_called) = (0, 0, 0);
{
package Foo;
use Moose;

sub foo { $super_called++ }
}

{
package Foo::Sub;
use Moose;
extends 'Foo';

override foo => sub {
$sub_called++;
super();
};
}

Foo::Sub->new->foo;
is($super_called, 1, "super called");
is($new_super_called, 0, "new super not called");
is($sub_called, 1, "sub called");

($super_called, $sub_called, $new_super_called) = (0, 0, 0);

Foo->meta->add_method(foo => sub {
$new_super_called++;
});

Foo::Sub->new->foo;
{ local $TODO = "super doesn't get replaced";
is($super_called, 0, "super not called");
is($new_super_called, 1, "new super called");
}
is($sub_called, 1, "sub called");

done_testing;

0 comments on commit d963b98

Please sign in to comment.