1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
use strict;
use v5.10;
use Test::More;
use Test::Exception;
use Pandoc::Elements;
my @tests = ( # => [ minimum API version , minimum release version ]
{ pandoc_version => '1.9' } => undef,
{ pandoc_version => '1.15.1' } => [qw(1.12.3 1.12.1)],
{ pandoc_version => '1.16.0.2' } => [qw(1.16 1.16)],
{ pandoc_version => '1.17' } => [qw(1.16 1.16)],
{ pandoc_version => '1.18' } => [qw(1.17 1.18)],
{ pandoc_version => '1.18.1' } => [qw(1.17 1.18)],
{ pandoc_version => '1.19' } => [qw(1.17 1.18)],
{ pandoc_version => '2.0' } => [qw(1.17 1.18)],
{ pandoc_version => '2.9' } => [qw(1.20 2.8)],
{ pandoc_version => '2.10' } => [qw(1.21 2.10)],
{ pandoc_version => '2.11' } => [qw(1.22 2.11)],
{ pandoc_version => '2.16' } => [qw(1.22 2.11)],
{ pandoc_version => '1.0' } => undef,
{ api_version => 1.17 } => [qw(1.17 1.18)],
);
while (@tests) {
my ($args, $versions) = splice @tests, 0, 2;
my $msg = join ' ', map { "$_ ".$args->{$_} } keys %$args;
if ($versions) {
my ($api, $release) = @$versions;
my $doc = Document {}, [], %$args;
is $doc->api_version, $api, "$msg => api $api";
is $doc->pandoc_version, $release, "$msg => pandoc $release";
} else {
throws_ok { Document {}, [], %$args }
qr/pandoc version not supported/, "$msg => error";
}
}
done_testing;
|