File Coverage

lib/Test/CPAN/Changes/ReallyStrict.pm
Criterion Covered Total %
statement 42 44 95.4
branch n/a
condition 1 2 50.0
subroutine 11 12 91.6
pod 2 2 100.0
total 56 60 93.3


line stmt bran cond sub pod time code
1 6     6   170382 use 5.006;
  6         21  
2 6     6   30 use strict;
  6         10  
  6         182  
3 6     6   30 use warnings;
  6         8  
  6         526  
4              
5             package Test::CPAN::Changes::ReallyStrict;
6              
7             our $VERSION = '1.000003';
8              
9             #ABSTRACT: Ensure a Changes file looks exactly like it would if it was machine generated.
10              
11             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
12              
13 6     6   996 use CPAN::Changes 0.17;
  6         37514  
  6         196  
14 6     6   39 use Test::Builder;
  6         8  
  6         141  
15 6     6   3046 use Test::CPAN::Changes::ReallyStrict::Object;
  6         16  
  6         434  
16              
17             my $TEST = Test::Builder->new();
18              
19             sub import {
20 4     4   46 my ( undef, @args ) = @_;
21              
22 4         10 my $caller = caller;
23             {
24             ## no critic (ProhibitNoStrict);
25 6     6   45 no strict 'refs';
  6         8  
  6         1798  
  4         10  
26 4         7 *{ $caller . '::changes_ok' } = \&changes_ok;
  4         32  
27 4         7 *{ $caller . '::changes_file_ok' } = \&changes_file_ok;
  4         19  
28             }
29 4         42 $TEST->exported_to($caller);
30 4         50 $TEST->plan(@args);
31 4         4934 return 1;
32             }
33              
34              
35              
36              
37              
38              
39              
40              
41              
42              
43              
44              
45              
46             sub changes_ok {
47 1     1 1 10 my (@args) = @_;
48 1         3 return changes_file_ok( undef, @args );
49             }
50              
51             # For testing.
52             sub _real_changes_ok {
53 0     0   0 my ( $tester, $state ) = @_;
54 0         0 return _real_changes_file_ok( $tester, $state );
55             }
56              
57              
58              
59              
60              
61              
62              
63              
64              
65              
66              
67              
68              
69              
70              
71             sub changes_file_ok {
72 1     1 1 2 my ( $file, $config ) = @_;
73 1   50     7 $file ||= 'Changes';
74 1         3 $config->{filename} = $file;
75             my $changes_obj = Test::CPAN::Changes::ReallyStrict::Object->new(
76             {
77             testbuilder => $TEST,
78 1         1 %{$config},
  1         13  
79             },
80             );
81 1         141 return $changes_obj->changes_ok;
82             }
83              
84             # Factoring design split so testing can inject a test::builder dummy
85              
86             sub _real_changes_file_ok {
87 4     4   522 my ( $tester, $state ) = @_;
88             my $changes_obj = Test::CPAN::Changes::ReallyStrict::Object->new(
89             {
90             testbuilder => $tester,
91 4         8 %{$state},
  4         67  
92             },
93             );
94 4         397 return $changes_obj->changes_ok;
95             }
96              
97             1;
98              
99             __END__