Merge branch 'master' into topic/more-compatible
gfx [Mon, 21 Sep 2009 06:28:04 +0000 (15:28 +0900)]
Conflicts:
t/800_shikabased/013-compatibility-get_method_list.t

1  2 
t/800_shikabased/013-compatibility-get_method_list.t

@@@ -1,60 -1,37 +1,62 @@@
  use strict;
  use warnings;
- use Test::More tests => 6;
+ use Test::More;
+ plan skip_all => "This test requires Moose 0.91" unless eval { require Moose; Moose->VERSION(0.91); };
+ plan tests => 6;
  
 -test($_) for qw/Moose Mouse/;
 -exit;
 -
 -sub test {
 -    my $class = shift;
 -    eval <<"...";
  {
 -    package ${class}Class;
 -    use ${class};
 +    package MouseClass;
 +    use Carp; # import external functions (not our methods)
 +    use Mouse;
      sub foo { }
 -    no ${class};
 +    no Mouse;
  }
  {
 -    package ${class}ClassImm;
 -    use ${class};
 +    package MouseClassImm;
 +    use Carp; # import external functions (not our methods)
 +    use Mouse;
      sub foo { }
 -    no ${class};
 +    no Mouse;
      __PACKAGE__->meta->make_immutable();
  }
  {
 -    package ${class}Role;
 -    use ${class}::Role;
 +    package MouseRole;
 +    use Carp; # import external functions (not our methods)
 +    use Mouse::Role;
      sub bar { }
 +    no Mouse::Role;
  }
 -...
 -    die $@ if $@;
 -    is join(',', sort "${class}Class"->meta->get_method_list()),    'foo,meta',             "mutable   $class";
 -    is join(',', sort "${class}ClassImm"->meta->get_method_list()), 'DESTROY,foo,meta,new', "immutable $class";
 -    is join(',', sort "${class}Role"->meta->get_method_list()),     'bar,meta',             "role      $class";
 +{
 +    package MouseRoleWithoutNoMouseRole;
 +    use Mouse::Role;
 +
 +    sub baz { }
 +    # without no Mouse::Role;
  }
 +{
 +    package MouseClassWithRole;
 +    use Mouse;
 +
 +    with 'MouseRole';
 +    no Mouse;
 +}
 +{
 +    package MouseClassWithRoles;
 +    use Mouse;
 +
 +    with qw(MouseRole MouseRoleWithoutNoMouseRole);
 +}
 +
 +is join(',', sort MouseClass->meta->get_method_list()),    'foo,meta',             "mutable Mouse";
 +is join(',', sort MouseClassImm->meta->get_method_list()), 'DESTROY,foo,meta,new', "immutable Mouse";
 +
 +is join(',', sort MouseRole->meta->get_method_list()),     'bar,meta',             "role Mouse";
 +is join(',', sort MouseRoleWithoutNoMouseRole->meta->get_method_list()),
 +                                                           'baz,meta',             "role Mouse";
 +
 +is join(',', sort MouseClassWithRole->meta->get_method_list()),
 +                                                           'bar,meta',                 "Mouse with a role";
 +is join(',', sort MouseClassWithRoles->meta->get_method_list()),
 +                                                           'bar,baz,meta',                 "Mouse with roles";
 +