Imported upstream version 0.08.02
[liburi-template-perl.git] / t / 12-suite.t
diff --git a/t/12-suite.t b/t/12-suite.t
new file mode 100644 (file)
index 0000000..19b0914
--- /dev/null
@@ -0,0 +1,31 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+BEGIN {
+       eval "use JSON ();";
+       plan skip_all => "JSON required" if $@;
+    plan( 'no_plan' );
+    use_ok( 'URI::Template' );
+}
+
+my @files = glob( 't/data/*.json' );
+
+for my $file ( @files ) {
+    open( my $json, $file );
+    my $suite = JSON::jsonToObj( do { local $/; <$json> } );
+    close( $json );
+
+    my %variables = %{ $suite->{ variables } };
+
+    my $count = 0;
+    for my $test ( @{ $suite->{ tests } } ) {
+        my $template = URI::Template->new( $test->{ template } );
+        my $result = $template->process( %variables );
+        $count++;
+        is( $result, $test->{ expected }, "${file}#${count}" );
+    }
+}
+
+