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