Refactor MOP Instance API in XS
[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' => [
f5d1c6d0 20
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',
41 'get_immutable_options',
42 'reset_package_cache_flag',
43 'update_package_cache_flag',
4054ae31 44
334d8f6e 45 # doc'd with rebless_instance
46 'rebless_instance_away',
c02d53a4 47 ],
f5d1c6d0 48 'Class::MOP::Class::Immutable::Trait' => ['.+'],
49 'Class::MOP::Class::Immutable::Class::MOP::Class' => ['.+'],
50 'Class::MOP::Instance' => [
fbedcfb3 51 qw( BUILDARGS
52 bless_instance_structure
53 is_dependent_on_superclasses ),
54 ],
20315887 55 'Class::MOP::Instance' => [
56 qw( BUILDARGS
57 bless_instance_structure
58 is_dependent_on_superclasses ),
59 ],
fbedcfb3 60 'Class::MOP::Method::Accessor' => [
61 qw( generate_accessor_method
62 generate_accessor_method_inline
63 generate_clearer_method
64 generate_clearer_method_inline
65 generate_predicate_method
66 generate_predicate_method_inline
67 generate_reader_method
68 generate_reader_method_inline
69 generate_writer_method
70 generate_writer_method_inline
71 initialize_body
72 )
73 ],
fbedcfb3 74 'Class::MOP::Method::Constructor' => [
75 qw( attributes
76 generate_constructor_method
77 generate_constructor_method_inline
78 initialize_body
79 meta_instance
a18e1521 80 options
fbedcfb3 81 )
82 ],
fbedcfb3 83 'Class::MOP::Method::Generated' => [
84 qw( new
85 definition_context
86 is_inline
87 initialize_body
88 )
89 ],
fbedcfb3 90 'Class::MOP::Module' => ['create'],
73544b2f 91 'Class::MOP::Package' => ['wrap_method_body'],
9f32bdd8 92);
93
94for my $module ( sort @modules ) {
95 my $trustme = [];
96 if ( $trustme{$module} ) {
97 my $methods = join '|', @{ $trustme{$module} };
896dacc0 98 $trustme = [qr/^(?:$methods)$/];
9f32bdd8 99 }
100
101 pod_coverage_ok(
102 $module, { trustme => $trustme },
103 "Pod coverage for $module"
104 );
105}