Commit | Line | Data |
046d763d |
1 | use strict; |
2 | use warnings; |
3 | |
3ed6349b |
4 | # FIXME - This is all fairly gross and hacky. Surely there should be a nicer |
5 | # more generic approach. |
065fbd81 |
6 | |
046d763d |
7 | use FindBin qw/$Bin/; |
104abdae |
8 | use lib "$Bin/lib"; |
046d763d |
9 | |
3ed6349b |
10 | use List::MoreUtils qw/any all/; |
046d763d |
11 | use Module::Find; |
104abdae |
12 | setmoduledirs("$Bin/../lib", "$Bin/lib"); |
046d763d |
13 | |
3ed6349b |
14 | use Test::More tests => 5; |
046d763d |
15 | use Test::Exception; |
16 | |
17 | my @modules; |
18 | lives_ok { |
3ed6349b |
19 | @modules = (useall('CatalystX'), useall('DynamicAppDemo')); |
046d763d |
20 | } 'Use all'; |
21 | ok @modules; |
22 | |
3ed6349b |
23 | ok ! any( sub { ! $_->isa('Moose::Object') }, |
24 | grep { $_->meta !~ /::Role/ } |
25 | grep { ! $_->can('import') } |
26 | @modules |
27 | ), |
046d763d |
28 | 'Moose in da hoose'; |
29 | |
3ed6349b |
30 | ok ! any(sub { $_->can('has') && warn("$_ can has") && 1; }, @modules), |
046d763d |
31 | 'However, no lolcat to be found'; |
32 | |
3ed6349b |
33 | ok all( sub { $_->meta->is_immutable }, |
34 | grep { $_->meta !~ /::Role/ } # Skip roles, ewww. I would test |
35 | # ->isa('Moose::Role') but that fails |
36 | # for parameterised roles.. |
37 | grep { ! $_->can('import') } # Skip exporters |
38 | @modules), |
39 | 'And all classes are immutable'; |
40 | |