Add minimal pod to mixin classes, add versions, and update pod spelling ...
[gitmo/Class-MOP.git] / xt / author / pod_coverage.t
CommitLineData
9f32bdd8 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More;
7
8eval "use Test::Pod::Coverage 1.04";
9plan 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.
13my @modules = all_modules();
14plan tests => scalar @modules;
15
16my %trustme = (
0db42924 17 'Class::MOP' => [ 'HAVE_ISAREV', 'subname', 'in_global_destruction' ],
9f32bdd8 18 'Class::MOP::Attribute' => ['process_accessors'],
c02d53a4 19 'Class::MOP::Class' => [
4054ae31 20 # deprecated
21 'alias_method',
2620be77 22 'compute_all_applicable_attributes',
4054ae31 23 'compute_all_applicable_methods',
24
25 # unfinished feature
26 'add_dependent_meta_instance',
27 'add_meta_instance_dependencies',
28 'invalidate_meta_instance',
29 'invalidate_meta_instances',
30 'remove_dependent_meta_instance',
31 'remove_meta_instance_dependencies',
32 'update_meta_instance_dependencies',
33
34 # effectively internal
35 'check_metaclass_compatibility',
36 'clone_instance',
37 'construct_class_instance',
38 'construct_instance',
4054ae31 39 'create_meta_instance',
4054ae31 40 'reset_package_cache_flag',
41 'update_package_cache_flag',
4054ae31 42
334d8f6e 43 # doc'd with rebless_instance
44 'rebless_instance_away',
b1aaf0dc 45
46 # deprecated
47 'get_attribute_map',
c02d53a4 48 ],
f5d1c6d0 49 'Class::MOP::Class::Immutable::Trait' => ['.+'],
50 'Class::MOP::Class::Immutable::Class::MOP::Class' => ['.+'],
b409c969 51 'Class::MOP::Deprecated' => ['.+'],
c871d3ea 52 'Class::MOP::Instance' => [
fbedcfb3 53 qw( BUILDARGS
54 bless_instance_structure
55 is_dependent_on_superclasses ),
56 ],
20315887 57 'Class::MOP::Instance' => [
58 qw( BUILDARGS
59 bless_instance_structure
60 is_dependent_on_superclasses ),
61 ],
fbedcfb3 62 'Class::MOP::Method::Accessor' => [
63 qw( generate_accessor_method
64 generate_accessor_method_inline
65 generate_clearer_method
66 generate_clearer_method_inline
67 generate_predicate_method
68 generate_predicate_method_inline
69 generate_reader_method
70 generate_reader_method_inline
71 generate_writer_method
72 generate_writer_method_inline
73 initialize_body
74 )
75 ],
fbedcfb3 76 'Class::MOP::Method::Constructor' => [
77 qw( attributes
78 generate_constructor_method
79 generate_constructor_method_inline
80 initialize_body
81 meta_instance
a18e1521 82 options
fbedcfb3 83 )
84 ],
fbedcfb3 85 'Class::MOP::Method::Generated' => [
86 qw( new
87 definition_context
88 is_inline
89 initialize_body
90 )
91 ],
c871d3ea 92 'Class::MOP::Mixin::AttributeCore' => ['.+'],
93 'Class::MOP::Mixin::HasAttributes' => ['.+'],
94 'Class::MOP::Mixin::HasMethods' => ['.+'],
95 'Class::MOP::Module' => ['create'],
b409c969 96 'Class::MOP::Package' => [ 'get_method_map', 'wrap_method_body' ],
9f32bdd8 97);
98
99for my $module ( sort @modules ) {
100 my $trustme = [];
101 if ( $trustme{$module} ) {
102 my $methods = join '|', @{ $trustme{$module} };
896dacc0 103 $trustme = [qr/^(?:$methods)$/];
9f32bdd8 104 }
105
106 pod_coverage_ok(
107 $module, { trustme => $trustme },
108 "Pod coverage for $module"
109 );
110}