Imported upstream version 0.09
[liburi-template-perl.git] / t / 12-suite.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 BEGIN {
7     eval "use JSON ();";
8     plan skip_all => "JSON required" if $@;
9     plan( 'no_plan' );
10     use_ok( 'URI::Template' );
11 }
12
13 my @files = glob( 't/data/*.json' );
14
15 for my $file ( @files ) {
16     open( my $json, $file );
17     my $suite = JSON::jsonToObj( do { local $/; <$json> } );
18     close( $json );
19
20     my %variables = %{ $suite->{ variables } };
21
22     my $count = 0;
23     for my $test ( @{ $suite->{ tests } } ) {
24         my $template = URI::Template->new( $test->{ template } );
25         my $result = $template->process( %variables );
26         $count++;
27         is( $result, $test->{ expected }, "${file}#${count}" );
28     }
29 }
30
31