Commit | Line | Data |
ae884abd |
1 | use strictures 2; |
2 | use Test::More; |
3 | use IO::All; |
4 | use Role::Tiny; |
5 | use Moose; |
6 | |
7 | sub check_module { |
8 | my ($module) = @_; |
9 | if ($module->isa('Moo::Object')) { |
10 | my $meta = $module->meta; |
11 | foreach my $name ($meta->get_attribute_list) { |
12 | my $attr = $meta->get_attribute($name); |
13 | if (my $tc = $attr->type_constraint) { |
14 | pass("${module}->${name} isa ${tc}"); |
15 | } else { |
16 | fail("${module}->${name} UNTYPED"); |
17 | } |
18 | } |
19 | } |
20 | } |
21 | |
22 | foreach my $file (io('lib')->all_files(0)) { |
23 | (my $name = $file->name) =~ s/^lib\///; |
24 | require $name; |
25 | (my $module = join '::', split '/', $name) =~ s/\.pm$//; |
26 | check_module($module); |
27 | } |
28 | |
29 | done_testing; |