7544becd43b48ef02ddaf1107f7f66834f5ed050
[gitmo/MooseX-ClassAttribute.git] / xt / release / pod-coverage.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 plan skip_all => 'This test is only run for the module author'
7     unless -d '.git' || $ENV{IS_MAINTAINER};
8
9 eval "use Test::Pod::Coverage 1.04";
10 plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage"
11     if $@;
12
13 # This is a stripped down version of all_pod_coverage_ok which lets us
14 # vary the trustme parameter per module.
15 my @modules = all_modules();
16 plan tests => scalar @modules;
17
18 my %trustme = (
19     'MooseX::ClassAttribute' => [ 'init_meta', 'class_has' ],
20     'MooseX::ClassAttribute::Meta::Method::Accessor' => ['.+'],
21     'MooseX::ClassAttribute::Meta::Role::Attribute'  => ['new'],
22     'MooseX::ClassAttribute::Trait::Class' =>
23         ['compute_all_applicable_class_attributes'],
24     'MooseX::ClassAttribute::Trait::Mixin::HasClassAttributes' => [
25         qw( add_class_attribute get_class_attribute_map remove_class_attribute )
26     ],
27 );
28
29 for my $module ( sort @modules ) {
30     my $trustme;
31
32     if ( $trustme{$module} ) {
33         my $methods = join '|', @{ $trustme{$module} };
34         $trustme = [qr/^(?:$methods)/];
35     }
36
37     pod_coverage_ok(
38         $module, { trustme => $trustme },
39         "Pod coverage for $module"
40     );
41 }