The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -T

use strict;
use warnings;
use lib 't';

use Test::More;

eval " use YAML ";
plan skip_all => "YAML is not installed." if $@;
plan 'no_plan';

use MyClass;
my $obj = MyClass->new({ load_plugins => [qw/ AnonMethod /] });
is $obj->call('foo'), 'anonmethod';

MyClass->load_components(qw/ Autocall::InjectMethod /);
my $obj2 = MyClass->new({ load_plugins => [qw/ AnonMethod /] });
is $obj2->call('foo'), 'anonmethod';
@MyClass::ISA = ('Class::Component');

MyClass->load_components(qw/ Autocall::SingletonMethod /);
my $obj3 = MyClass->new({ load_plugins => [qw/ AnonMethod /] });
is $obj3->call('foo'), 'anonmethod';
@MyClass::ISA = ('Class::Component');

MyClass->load_components(qw/ Autocall::Autoload /);
my $obj4 = MyClass->new({ load_plugins => [qw/ AnonMethod /] });
is $obj4->call('foo'), 'anonmethod';
@MyClass::ISA = ('Class::Component');