basic implementation of preserving attrs/methods across reinitialization
[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 = (
10c5d753 18 'Class::MOP' => [
19 'DEBUG_NO_META',
20 'HAVE_ISAREV',
21 'subname',
22 'in_global_destruction',
23 ],
9f32bdd8 24 'Class::MOP::Attribute' => ['process_accessors'],
c02d53a4 25 'Class::MOP::Class' => [
4054ae31 26 # deprecated
27 'alias_method',
2620be77 28 'compute_all_applicable_attributes',
4054ae31 29 'compute_all_applicable_methods',
30
31 # unfinished feature
32 'add_dependent_meta_instance',
33 'add_meta_instance_dependencies',
34 'invalidate_meta_instance',
35 'invalidate_meta_instances',
36 'remove_dependent_meta_instance',
37 'remove_meta_instance_dependencies',
38 'update_meta_instance_dependencies',
39
40 # effectively internal
41 'check_metaclass_compatibility',
42 'clone_instance',
43 'construct_class_instance',
44 'construct_instance',
4054ae31 45 'create_meta_instance',
4054ae31 46 'reset_package_cache_flag',
47 'update_package_cache_flag',
2d09de80 48 'reinitialize',
4054ae31 49
334d8f6e 50 # doc'd with rebless_instance
51 'rebless_instance_away',
b1aaf0dc 52
53 # deprecated
54 'get_attribute_map',
c02d53a4 55 ],
f5d1c6d0 56 'Class::MOP::Class::Immutable::Trait' => ['.+'],
57 'Class::MOP::Class::Immutable::Class::MOP::Class' => ['.+'],
b409c969 58 'Class::MOP::Deprecated' => ['.+'],
9b871d79 59 'Class::MOP::Instance' => [
fbedcfb3 60 qw( BUILDARGS
61 bless_instance_structure
62 is_dependent_on_superclasses ),
63 ],
20315887 64 'Class::MOP::Instance' => [
65 qw( BUILDARGS
66 bless_instance_structure
67 is_dependent_on_superclasses ),
68 ],
fbedcfb3 69 'Class::MOP::Method::Accessor' => [
70 qw( generate_accessor_method
71 generate_accessor_method_inline
72 generate_clearer_method
73 generate_clearer_method_inline
74 generate_predicate_method
75 generate_predicate_method_inline
76 generate_reader_method
77 generate_reader_method_inline
78 generate_writer_method
79 generate_writer_method_inline
80 initialize_body
81 )
82 ],
fbedcfb3 83 'Class::MOP::Method::Constructor' => [
84 qw( attributes
85 generate_constructor_method
86 generate_constructor_method_inline
87 initialize_body
88 meta_instance
a18e1521 89 options
fbedcfb3 90 )
91 ],
fbedcfb3 92 'Class::MOP::Method::Generated' => [
93 qw( new
94 definition_context
95 is_inline
96 initialize_body
97 )
98 ],
35cb21ab 99 'Class::MOP::MiniTrait' => ['.+'],
9b871d79 100 'Class::MOP::Mixin::AttributeCore' => ['.+'],
101 'Class::MOP::Mixin::HasAttributes' => ['.+'],
102 'Class::MOP::Mixin::HasMethods' => ['.+'],
103 'Class::MOP::Module' => ['create'],
b409c969 104 'Class::MOP::Package' => [ 'get_method_map', 'wrap_method_body' ],
9f32bdd8 105);
106
107for my $module ( sort @modules ) {
108 my $trustme = [];
109 if ( $trustme{$module} ) {
110 my $methods = join '|', @{ $trustme{$module} };
896dacc0 111 $trustme = [qr/^(?:$methods)$/];
9f32bdd8 112 }
113
114 pod_coverage_ok(
115 $module, { trustme => $trustme },
116 "Pod coverage for $module"
117 );
118}