File Coverage

blib/lib/Test/DateTime/Format/Alami.pm
Criterion Covered Total %
statement 54 54 100.0
branch 7 10 70.0
condition n/a
subroutine 9 9 100.0
pod 1 1 100.0
total 71 74 95.9


line stmt bran cond sub pod time code
1             package Test::DateTime::Format::Alami;
2              
3 2     2   2976 use 5.010001;
  2         5  
4 2     2   5 use strict;
  2         3  
  2         34  
5 2     2   6 use warnings;
  2         2  
  2         38  
6              
7 2     2   1435 use DateTime;
  2         152306  
  2         68  
8 2     2   1078 use Test::More 0.98;
  2         26328  
  2         21  
9              
10 2     2   535 use Exporter qw(import);
  2         4  
  2         802  
11             our @EXPORT = qw(test_datetime_format_alami);
12              
13             sub test_datetime_format_alami {
14 2     2 1 101 my ($class0, $tests) = @_;
15              
16 2         7 my $class = "DateTime::Format::Alami::$class0";
17 2 50   2   1090 eval "use $class"; die if $@;
  2         4  
  2         36  
  2         219  
  2         8  
18              
19             subtest "test suite for $class" => sub {
20 2     2   1246 my $parser = $class->new;
21              
22 2         3 for my $t (@{ $tests->{parse_datetime_tests} }) {
  2         8  
23 86         53375 my ($str, $exp_result) = @$t;
24             subtest $str => sub {
25 86         30621 my $dt;
26 86         103 eval { $dt = $parser->parse_datetime(
27 86         454 $str, {time_zone => $tests->{time_zone}}) };
28 86         159 my $err = $@;
29 86 100       121 if ($exp_result) {
30 78 50       195 ok(!$err, "parse should succeed") or return;
31 78         21419 is("$dt", $exp_result, "result should be $exp_result");
32             } else {
33 8         20 ok($err, "parse should fail");
34 8         1894 return;
35             }
36 86         457 };
37             } # parse_datetime_tests
38              
39 2         2425 require DateTime::Format::Duration::ISO8601;
40 2         635 my $pdur = DateTime::Format::Duration::ISO8601->new;
41 2         9 for my $t (@{ $tests->{parse_datetime_duration_tests} }) {
  2         9  
42 6         2020 my ($str, $exp_result) = @$t;
43             subtest $str => sub {
44 6         2233 my $dtdur;
45 6         7 eval { $dtdur = $parser->parse_datetime_duration($str) };
  6         25  
46 6         8 my $err = $@;
47 6 100       13 if ($exp_result) {
48 4 50       10 ok(!$err, "parse should succeed") or return;
49 4         915 is($pdur->format_duration($dtdur), $exp_result,
50             "result should be $exp_result");
51             } else {
52 2         6 ok($err, "parse should fail");
53 2         484 return;
54             }
55 6         38 };
56             } # parse_datetime_duration_tests
57 2         25 };
58             }
59              
60             1;
61             # ABSTRACT: Test DateTime::Format::Alami
62              
63             __END__