#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use JSON::SL;
use Data::Dumper;
use Devel::Peek;
my $txt = <<'EOT';
{
"some" : {
"partial" : [42]
},
"other" : {
"partial" : "a string"
},
"more" : {
"more" : "stuff"
EOT
my $json = JSON::SL->new(512);
my $jpath = "/^/partial";
$json->set_jsonpointer( [$jpath] );
my @results = $json->feed($txt);
is($results[0]->{Value}->[0], 42, "Got first value");
is($results[1]->{Value}, 'a string', "Got second value");
is($results[0]->{Path}, '/some/partial', "First path matches");
is($results[1]->{Path}, '/other/partial', "Second path matches");
ok($results[0]->{JSONPointer} eq $jpath
&& $results[1]->{JSONPointer} eq $jpath,
"Both results share same JSONPointer ($jpath)");
ok(exists $json->root->{some}, "Matching container still in root");
ok(scalar keys %{$json->root->{some} } == 0, "but has no entries..");
is($json->root->{more}->{more}, "stuff", "Still have some stuff there..");
done_testing();