use strict;
use warnings;
-use Test::More tests => 7;
+use Test::More tests => 8;
BEGIN {
use_ok('Moose');
package TouchyBase;
use Moose;
- has string_ref => ( is => 'rw', default => sub { my $x = "moose fruit"; \$x } );
has x => ( is => 'rw', default => 0 );
sub inc { $_[0]->x( 1 + $_[0]->x ) }
wantarray ? (qw/a b c/) : "x";
}
- sub array_arity {
- split(/\s+/,"foo bar gorch baz la");
- }
-
sub void {
die "this must be void context" if defined wantarray;
}
- sub substr_lvalue : lvalue {
- my $self = shift;
- my $string_ref = $self->string_ref;
- my $lvalue_ref = \substr($$string_ref, 0, 5);
- $$lvalue_ref;
- }
-
package AfterSub;
use Moose;
extends "TouchyBase";
- after qw/scalar_or_array array_arity void substr_lvalue/ => sub {
+ after qw/scalar_or_array void/ => sub {
my $self = shift;
$self->inc;
}
eval { $obj->void };
ok( !$@, "void context ($class)" );
}
+
+ if ( $obj->isa("AfterSub") ) {
+ is( $obj->x, 3, "methods were wrapped" );
+ }
}