#!/usr/bin/perl # Does the legacy compatibility interface Aspect::Legacy work as expected use strict; BEGIN { $| = 1; $^W = 1; } use Test::More tests => 8; use Test::NoWarnings; use Aspect::Legacy; ###################################################################### # Before SCOPE: { package Person; use Test::More; sub get_foo { my $self = shift; is_deeply( [ @_ ], [ 'bar', 1, 2, 3 ], 'Params modified' ); return 'foo'; } package Tester; use Test::More; sub run_tests { my $person = bless { }, 'Person'; my $foo = $person->get_foo('bar'); is( $foo, 'foo', 'Got the correct value' ); } 1; } my $CALLED = 0; before { $CALLED++; my $context = shift; is( $context->type, 'before', '->type ok' ); isa_ok( $context->self, 'Person' ); is( $context->params->[1], 'bar', '->params ok' ); is( ref($context->original), 'CODE', '->original ok' ); $context->append_param(1); $context->append_params(2, 3); } call qr/^Person::get_/ & cflow tester => 'Tester::run_tests'; Tester::run_tests(); is( $CALLED, 1, 'Hook fired' );