#!/usr/bin/perl -w # Load testing for Method::Alias use strict; use lib (); use File::Spec::Functions ':ALL'; BEGIN { $| = 1; unless ( $ENV{HARNESS_ACTIVE} ) { require FindBin; $FindBin::Bin = $FindBin::Bin; # Avoid a warning chdir catdir( $FindBin::Bin, updir() ); lib->import( catdir('blib', 'arch'), catdir('blib', 'lib' ), catdir('lib'), ); } } use Test::More tests => 10; # Test the test package is( Foo->foo, 1, '->foo returns as expected' ); is( Foo->bar, 1, 'A single alias works as expected' ); is( Foo->baz, 1, 'A duplicate alias works as expected' ); is( Foo->blah, 1, 'Double alias works as expected' ); ##################################################################### # Testing Package package Foo; use Test::More; use Method::Alias 'bar' => 'foo', 'baz' => 'foo', 'blah' => 'bar'; sub foo { 1 } ok( Method::Alias->import( 'this', 'foo' ), 'Direct call to import returns true' ); is( Foo->this, 1, 'Resulting alias is created' ); ##################################################################### # Testing Subclass package Foo::Bar; use Test::More; use strict; use base 'Foo'; sub foo { 2 } # When we call bar from THIS class, we should now get 2 is( Foo->foo, 1, '->foo from original returns as expected' ); is( Foo::Bar->foo, 2, '->from from subclass returns as expected' ); is( Foo::Bar->bar, 2, '->bar from subclass returns as expected' ); is( Foo::Bar->blah, 2, 'Double from subclass returns as expected' ); 1;