Add "reblessing" to dictionary
[gitmo/Class-MOP.git] / xt / pod_coverage.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7
8 eval "use Test::Pod::Coverage 1.04";
9 plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@;
10
11 # This is a stripped down version of all_pod_coverage_ok which lets us
12 # vary the trustme parameter per module.
13 my @modules = all_modules();
14 plan tests => scalar @modules;
15
16 my %trustme = (
17     'Class::MOP'            => ['HAVE_ISAREV'],
18     'Class::MOP::Attribute' => ['process_accessors'],
19     'Class::MOP::Class'     => [
20         # deprecated
21         'alias_method',
22         'compute_all_applicable_methods',
23
24         # unfinished feature
25         'add_dependent_meta_instance',
26         'add_meta_instance_dependencies',
27         'invalidate_meta_instance',
28         'invalidate_meta_instances',
29         'remove_dependent_meta_instance',
30         'remove_meta_instance_dependencies',
31         'update_meta_instance_dependencies',
32
33         # effectively internal
34         'check_metaclass_compatibility',
35         'clone_instance',
36         'construct_class_instance',
37         'construct_instance',
38         'create_immutable_transformer',
39         'create_meta_instance',
40         'get_immutable_options',
41         'reset_package_cache_flag',
42         'update_package_cache_flag',
43         'wrap_method_body',
44
45         # doc'd under get_all_attributes
46         'compute_all_applicable_attributes',
47
48         # doc'd with rebless_instance
49         'rebless_instance_away',
50     ],
51
52     'Class::MOP::Instance' => [
53         qw( BUILDARGS
54             bless_instance_structure
55             is_dependent_on_superclasses ),
56     ],
57
58     'Class::MOP::Instance' => [
59         qw( BUILDARGS
60             bless_instance_structure
61             is_dependent_on_superclasses ),
62     ],
63
64     'Class::MOP::Method::Accessor' => [
65         qw( generate_accessor_method
66             generate_accessor_method_inline
67             generate_clearer_method
68             generate_clearer_method_inline
69             generate_predicate_method
70             generate_predicate_method_inline
71             generate_reader_method
72             generate_reader_method_inline
73             generate_writer_method
74             generate_writer_method_inline
75             initialize_body
76             )
77     ],
78
79     'Class::MOP::Method::Constructor' => [
80         qw( attributes
81             generate_constructor_method
82             generate_constructor_method_inline
83             initialize_body
84             meta_instance
85             options
86             )
87     ],
88
89     'Class::MOP::Method::Generated' => [
90         qw( new
91             definition_context
92             is_inline
93             initialize_body
94             )
95     ],
96
97     'Class::MOP::Module' => ['create'],
98 );
99
100 for my $module ( sort @modules ) {
101     my $trustme = [];
102     if ( $trustme{$module} ) {
103         my $methods = join '|', @{ $trustme{$module} };
104         $trustme = [qr/^(?:$methods)$/];
105     }
106
107     pod_coverage_ok(
108         $module, { trustme => $trustme },
109         "Pod coverage for $module"
110     );
111 }