The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More qw( no_plan );

use_ok( 'CQL::PrefixNode' );
use_ok( 'CQL::TermNode' );
use_ok( 'CQL::AndNode' );

my $subtree = CQL::AndNode->new( 
    left    => CQL::TermNode->new( term => 'foo' ),
    right   => CQL::TermNode->new( term => 'bar' )
);

my $prefixNode = CQL::PrefixNode->new(
    name        => 'dc',
    identifier  => 'http://zthes.z3950.org/cql/1.0',
    subtree     => $subtree
);

isa_ok( $prefixNode, 'CQL::PrefixNode' );

my $prefix = $prefixNode->getPrefix();
isa_ok( $prefix, 'CQL::Prefix' );

is( $prefixNode->toCQL(), 
    '>dc="http://zthes.z3950.org/cql/1.0" ((foo) and (bar))', 
    'toCQL()' );

my $xml = $prefixNode->toXCQL();
$xml =~ s/[\r\n]//g;
$xml =~ s/> +/>/g;
is( $xml,
    '<triple xmlns="http://www.loc.gov/zing/cql/xcql/"><prefixes><prefix><name>dc</name><identifier>http://zthes.z3950.org/cql/1.0</identifier></prefix></prefixes><boolean><value>and</value></boolean><leftOperand><searchClause><index></index><term>foo</term></searchClause></leftOperand><rightOperand><searchClause><index></index><term>bar</term></searchClause></rightOperand></triple>', 
    'toXCQL()'
);