X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Froles%2Fmore_alias_and_exclude.t;fp=t%2Froles%2Fmore_alias_and_exclude.t;h=62d30982b99b7ce130bce64234abd059e3f5bc03;hb=829433c47061dd70a608bfcd940113c4172b6950;hp=0000000000000000000000000000000000000000;hpb=51c788414482c813eb48fb417b08ba03134ff1a6;p=gitmo%2FMoose.git diff --git a/t/roles/more_alias_and_exclude.t b/t/roles/more_alias_and_exclude.t new file mode 100644 index 0000000..62d3098 --- /dev/null +++ b/t/roles/more_alias_and_exclude.t @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Test::More; +use Test::Fatal; + + +{ + package Foo; + use Moose::Role; + + sub foo { 'Foo::foo' } + sub bar { 'Foo::bar' } + sub baz { 'Foo::baz' } + sub gorch { 'Foo::gorch' } + + package Bar; + use Moose::Role; + + sub foo { 'Bar::foo' } + sub bar { 'Bar::bar' } + sub baz { 'Bar::baz' } + sub gorch { 'Bar::gorch' } + + package Baz; + use Moose::Role; + + sub foo { 'Baz::foo' } + sub bar { 'Baz::bar' } + sub baz { 'Baz::baz' } + sub gorch { 'Baz::gorch' } + + package Gorch; + use Moose::Role; + + sub foo { 'Gorch::foo' } + sub bar { 'Gorch::bar' } + sub baz { 'Gorch::baz' } + sub gorch { 'Gorch::gorch' } +} + +{ + package My::Class; + use Moose; + + ::is( ::exception { + with 'Foo' => { -excludes => [qw/bar baz gorch/], -alias => { gorch => 'foo_gorch' } }, + 'Bar' => { -excludes => [qw/foo baz gorch/] }, + 'Baz' => { -excludes => [qw/foo bar gorch/], -alias => { foo => 'baz_foo', bar => 'baz_bar' } }, + 'Gorch' => { -excludes => [qw/foo bar baz/] }; + }, undef, '... everything works out all right' ); +} + +my $c = My::Class->new; +isa_ok($c, 'My::Class'); + +is($c->foo, 'Foo::foo', '... got the right method'); +is($c->bar, 'Bar::bar', '... got the right method'); +is($c->baz, 'Baz::baz', '... got the right method'); +is($c->gorch, 'Gorch::gorch', '... got the right method'); + +is($c->foo_gorch, 'Foo::gorch', '... got the right method'); +is($c->baz_foo, 'Baz::foo', '... got the right method'); +is($c->baz_bar, 'Baz::bar', '... got the right method'); + +done_testing;