Skip to content

Commit

Permalink
Merge branch 'does_metaroles_ok'
Browse files Browse the repository at this point in the history
* does_metaroles_ok:
  Add 'class_metaroles' option to validate_class()
  Test class_metaroles option to validate_class()
  • Loading branch information
rsrchboy committed Nov 14, 2016
2 parents 54c449c + a8f523b commit db23efc
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
3 changes: 3 additions & 0 deletions lib/Test/Moose/More.pm
Original file line number Diff line number Diff line change
Expand Up @@ -727,6 +727,9 @@ sub _validate_class_guts {
do { is_not_immutable_ok $class }
if exists $args{immutable} && !$args{immutable};

do { does_metaroles_ok $class => $args{class_metaroles} }
if exists $args{class_metaroles};

return validate_thing $class => %args;
}

Expand Down
36 changes: 36 additions & 0 deletions t/validate_class/metaroles.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
use strict;
use warnings;

{ package MetaRole::attribute; use Moose::Role; }
{ package TestClass; use Moose; }

use Test::Builder::Tester;
use Test::More;
use Test::Moose::More;
use TAP::SimpleOutput 0.007 'counters';

use Moose::Util::MetaRole;

Moose::Util::MetaRole::apply_metaroles for => 'TestClass',
class_metaroles => { attribute => [ 'MetaRole::attribute' ] };

subtest 'Sanity, simple run' => sub {
validate_class 'TestClass' => (
class_metaroles => { attribute => [ 'MetaRole::attribute' ] },
);
};

{
my ($_ok, $_nok) = counters;
test_out $_ok->(q{TestClass has a metaclass});
test_out $_ok->(q{TestClass is a Moose class});
test_out $_ok->(q{TestClass's attribute metaclass Moose::Meta::Class::__ANON__::SERIAL::1 does MetaRole::attribute});
validate_class 'TestClass' => (
class_metaroles => { attribute => [ 'MetaRole::attribute' ] },
);
test_test 'class_metaroles option honored';

}


done_testing;

0 comments on commit db23efc

Please sign in to comment.