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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
#!/usr/bin/env perl
use strict;
use warnings;
no warnings 'redefine';
use URI::file;
use Test::More tests => 10;
use Data::Dumper;
use IO::Socket::INET;
use Time::HiRes qw(sleep);
use RDF::Trine;
use RDF::Trine::Iterator qw(sgrep smap swatch);
use RDF::Trine::Iterator::Graph;
use RDF::Trine::Iterator::Bindings;
use RDF::Trine::Iterator::Boolean;
my $BASE_PORT = 9015;
{
my $string = <<"END";
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="p"/>
<variable name="name"/>
</head>
<results>
<result>
<binding name="p"><bnode>r1196945277r60184r136</bnode></binding>
<binding name="name"><literal datatype="http://www.w3.org/2000/01/rdf-schema#Literal">Adam</literal></binding>
</result>
<result>
<binding name="p"><uri>http://kasei.us/about/foaf.xrdf#greg</uri></binding>
<binding name="name"><literal xml:lang="en">Greg</literal></binding>
</result>
</results>
</sparql>
END
my $stream = RDF::Trine::Iterator->from_string( $string )->materialize;
isa_ok( $stream, 'RDF::Trine::Iterator' );
ok( $stream->is_bindings, 'is_bindings' );
my @values = $stream->get_all;
is( scalar(@values), 2, 'expected result count' );
{
my $data = $stream->next;
my $lit = $data->{name};
is( $lit->literal_value, 'Adam', 'name 1' );
is( $lit->literal_datatype, 'http://www.w3.org/2000/01/rdf-schema#Literal', 'datatype' );
}
{
my $data = $stream->next;
my $lit = $data->{name};
is( $lit->literal_value, 'Greg', 'name 2' );
is( $lit->literal_value_language, 'en', 'language' );
}
}
{
my $string = <<"END";
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head></head>
<results>
<boolean>true</boolean>
</results>
</sparql>
END
my $stream = RDF::Trine::Iterator->from_string( $string );
isa_ok( $stream, 'RDF::Trine::Iterator' );
ok( $stream->is_boolean, 'is_boolean' );
ok( $stream->get_boolean, 'expected result boolean' );
}
|