use
if
$ENV
{AUTHOR_TESTING},
'Test::Warnings'
;
my
@calls
;
do
{
sub
original {
push
@calls
,
'Class::original'
}
around
original
=>
sub
{
push
@calls
,
'around Class::original'
};
};
Class->original;
is_deeply([
splice
@calls
], [
'around Class::original'
,
]);
do
{
sub
original {
push
@calls
,
'MyParent::original'
}
around
original
=>
sub
{
my
$orig
=
shift
;
push
@calls
,
'around/before MyParent::original'
;
$orig
->(
@_
);
push
@calls
,
'around/after MyParent::original'
;
};
};
MyParent->original;
is_deeply([
splice
@calls
], [
'around/before MyParent::original'
,
'MyParent::original'
,
'around/after MyParent::original'
,
]);
do
{
around
original
=>
sub
{
my
$orig
=
shift
;
push
@calls
,
'2 around/before MyParent::original'
;
$orig
->(
@_
);
push
@calls
,
'2 around/after MyParent::original'
;
};
};
MyParent->original;
is_deeply([
splice
@calls
], [
'2 around/before MyParent::original'
,
'around/before MyParent::original'
,
'MyParent::original'
,
'around/after MyParent::original'
,
'2 around/after MyParent::original'
,
]);
done_testing;