From: Dave Rolsky Date: Sun, 13 Sep 2009 15:44:51 +0000 (-0500) Subject: Remote tabs and add some vertical whitespace X-Git-Tag: 0.90~29 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=67dac033de7c66641b00d969163a4731a1555b35;p=gitmo%2FMoose.git Remote tabs and add some vertical whitespace --- diff --git a/t/050_metaclasses/030_metarole_combination.t b/t/050_metaclasses/030_metarole_combination.t index 5652a74..2b1e928 100644 --- a/t/050_metaclasses/030_metarole_combination.t +++ b/t/050_metaclasses/030_metarole_combination.t @@ -5,45 +5,51 @@ use Test::More; our @applications; { - package CustomApplication; - use Moose::Role; - after apply_methods => sub { - my ($self, $role, $other) = @_; - $self->apply_custom($role, $other); + package CustomApplication; + use Moose::Role; + + after apply_methods => sub { + my ( $self, $role, $other ) = @_; + $self->apply_custom( $role, $other ); }; sub apply_custom { shift; push @applications, [@_]; - } + } } { package CustomApplication::ToClass; use Moose::Role; + with 'CustomApplication'; } { package CustomApplication::ToRole; use Moose::Role; + with 'CustomApplication'; } { package CustomApplication::ToInstance; use Moose::Role; + with 'CustomApplication'; } { package CustomApplication::Composite; use Moose::Role; + with 'CustomApplication'; + around apply_custom => sub { - my ($next, $self, $composite, $other) = @_; - for my $role (@{ $composite->get_roles }) { - $self->$next($role, $other); + my ( $next, $self, $composite, $other ) = @_; + for my $role ( @{ $composite->get_roles } ) { + $self->$next( $role, $other ); } }; } @@ -51,31 +57,38 @@ our @applications; { package CustomApplication::Composite::ToClass; use Moose::Role; + with 'CustomApplication::Composite'; } { package CustomApplication::Composite::ToRole; use Moose::Role; + with 'CustomApplication::Composite'; } { package CustomApplication::Composite::ToInstance; use Moose::Role; + with 'CustomApplication::Composite'; } { package Role::Composite; use Moose::Role; + around apply_params => sub { - my ($next, $self, @args) = @_; + my ( $next, $self, @args ) = @_; return Moose::Util::MetaRole::apply_metaclass_roles( - for_class => $self->$next(@args), - application_to_class_class_roles => [ 'CustomApplication::Composite::ToClass' ], - application_to_role_class_roles => [ 'CustomApplication::Composite::ToRole' ], - application_to_instance_class_roles => [ 'CustomApplication::Composite::ToInstance' ], + for_class => $self->$next(@args), + application_to_class_class_roles => + ['CustomApplication::Composite::ToClass'], + application_to_role_class_roles => + ['CustomApplication::Composite::ToRole'], + application_to_instance_class_roles => + ['CustomApplication::Composite::ToInstance'], ); }; } @@ -83,8 +96,9 @@ our @applications; { package Role::WithCustomApplication; use Moose::Role; + has '+composition_class_roles' => ( - default => [ 'Role::Composite' ], + default => ['Role::Composite'], ); } @@ -95,13 +109,15 @@ our @applications; ); sub init_meta { - my ($self, %options) = @_; + my ( $self, %options ) = @_; return Moose::Util::MetaRole::apply_metaclass_roles( - for_class => Moose::Role->init_meta(%options), - metaclass_roles => [ 'Role::WithCustomApplication' ], - application_to_class_class_roles => [ 'CustomApplication::ToClass' ], - application_to_role_class_roles => [ 'CustomApplication::ToRole' ], - application_to_instance_class_roles => [ 'CustomApplication::ToInstance' ], + for_class => Moose::Role->init_meta(%options), + metaclass_roles => ['Role::WithCustomApplication'], + application_to_class_class_roles => + ['CustomApplication::ToClass'], + application_to_role_class_roles => ['CustomApplication::ToRole'], + application_to_instance_class_roles => + ['CustomApplication::ToInstance'], ); } } @@ -116,83 +132,102 @@ our @applications; CustomRole->import; } -ok(My::Role::Normal->meta->isa('Moose::Meta::Role'), "sanity check"); -ok(My::Role::Special->meta->isa('Moose::Meta::Role'), "using custom application roles does not change the role metaobject's class"); -ok(My::Role::Special->meta->meta->does_role('Role::WithCustomApplication'), "the role's metaobject has custom applications"); -is_deeply(My::Role::Special->meta->composition_class_roles, ['Role::Composite'], "the role knows about the specified composition class"); +ok( My::Role::Normal->meta->isa('Moose::Meta::Role'), "sanity check" ); +ok( My::Role::Special->meta->isa('Moose::Meta::Role'), + "using custom application roles does not change the role metaobject's class" +); +ok( My::Role::Special->meta->meta->does_role('Role::WithCustomApplication'), + "the role's metaobject has custom applications" ); +is_deeply( My::Role::Special->meta->composition_class_roles, + ['Role::Composite'], + "the role knows about the specified composition class" ); { package Foo; use Moose; + local @applications; with 'My::Role::Special'; - ::is(@applications, 1, 'one role application'); - ::is($applications[0]->[0]->name, 'My::Role::Special', "the application's first role was My::Role::Special'"); - ::is($applications[0]->[1]->name, 'Foo', "the application provided an additional role"); + + ::is( @applications, 1, 'one role application' ); + ::is( $applications[0]->[0]->name, 'My::Role::Special', + "the application's first role was My::Role::Special'" ); + ::is( $applications[0]->[1]->name, 'Foo', + "the application provided an additional role" ); } { package Bar; use Moose::Role; + local @applications; with 'My::Role::Special'; - ::is(@applications, 1); - ::is($applications[0]->[0]->name, 'My::Role::Special'); - ::is($applications[0]->[1]->name, 'Bar'); + + ::is( @applications, 1 ); + ::is( $applications[0]->[0]->name, 'My::Role::Special' ); + ::is( $applications[0]->[1]->name, 'Bar' ); } { package Baz; use Moose; + my $i = Baz->new; local @applications; My::Role::Special->meta->apply($i); - ::is(@applications, 1); - ::is($applications[0]->[0]->name, 'My::Role::Special'); - ::ok($applications[0]->[1]->is_anon_class); - ::ok($applications[0]->[1]->name->isa('Baz')); + + ::is( @applications, 1 ); + ::is( $applications[0]->[0]->name, 'My::Role::Special' ); + ::ok( $applications[0]->[1]->is_anon_class ); + ::ok( $applications[0]->[1]->name->isa('Baz') ); } { package Corge; use Moose; + local @applications; with 'My::Role::Normal', 'My::Role::Special'; - ::is(@applications, 2); - ::is($applications[0]->[0]->name, 'My::Role::Normal'); - ::is($applications[0]->[1]->name, 'Corge'); - ::is($applications[1]->[0]->name, 'My::Role::Special'); - ::is($applications[1]->[1]->name, 'Corge'); + + ::is( @applications, 2 ); + ::is( $applications[0]->[0]->name, 'My::Role::Normal' ); + ::is( $applications[0]->[1]->name, 'Corge' ); + ::is( $applications[1]->[0]->name, 'My::Role::Special' ); + ::is( $applications[1]->[1]->name, 'Corge' ); } { package Thud; use Moose::Role; + local @applications; with 'My::Role::Normal', 'My::Role::Special'; - ::is(@applications, 2); - ::is($applications[0]->[0]->name, 'My::Role::Normal'); - ::is($applications[0]->[1]->name, 'Thud'); - ::is($applications[1]->[0]->name, 'My::Role::Special'); - ::is($applications[1]->[1]->name, 'Thud'); + + ::is( @applications, 2 ); + ::is( $applications[0]->[0]->name, 'My::Role::Normal' ); + ::is( $applications[0]->[1]->name, 'Thud' ); + ::is( $applications[1]->[0]->name, 'My::Role::Special' ); + ::is( $applications[1]->[1]->name, 'Thud' ); } { package Garply; use Moose; + my $i = Garply->new; local @applications; Moose::Meta::Role->combine( - ['My::Role::Normal' => undef], - ['My::Role::Special' => undef], + [ 'My::Role::Normal' => undef ], + [ 'My::Role::Special' => undef ], )->apply($i); - ::is(@applications, 2); - ::is($applications[0]->[0]->name, 'My::Role::Normal'); - ::ok($applications[0]->[1]->is_anon_class); - ::ok($applications[0]->[1]->name->isa('Garply')); - ::is($applications[1]->[0]->name, 'My::Role::Special'); - ::ok($applications[1]->[1]->is_anon_class); - ::ok($applications[1]->[1]->name->isa('Garply')); + + ::is( @applications, 2 ); + ::is( $applications[0]->[0]->name, 'My::Role::Normal' ); + ::ok( $applications[0]->[1]->is_anon_class ); + ::ok( $applications[0]->[1]->name->isa('Garply') ); + ::is( $applications[1]->[0]->name, 'My::Role::Special' ); + ::ok( $applications[1]->[1]->is_anon_class ); + ::ok( $applications[1]->[1]->name->isa('Garply') ); } done_testing;