use Test::More tests => 10;
use strict;
use warnings;
use_ok( 'WebService::Lucene::XOXOParser' );
my $parser = WebService::Lucene::XOXOParser->new;
isa_ok( $parser, 'WebService::Lucene::XOXOParser' );
{
my $data = <<'';
- a
- b
- c
- d
my $expected = [
{ name => 'a',
value => 'b',
class => '1',
},
{ name => 'c',
value => 'd',
class => '2',
},
];
my $result = [ $parser->parse( $data ) ];
is_deeply( $result, $expected, "parse" );
}
{
my $expected = <<'';
- a
- b
- c
- d
my $data = [
{ name => 'a',
value => 'b',
class => '1',
},
{ name => 'c',
value => 'd',
class => '2',
},
];
my $result = $parser->construct( @$data );
chomp( $expected );
chomp( $result );
is( $result, $expected, "contruct" );
}
{
my %table = (
'&' => '&',
'<' => '<',
'>' => '>',
'"' => '"',
"'" => ''',
);
for my $value ( keys %table ) {
is( $parser->encode_entities( $value ),
$table{ $value },
"encode: $value"
);
}
}
{
my $expected = <<'';
- &<>"'
- &<>"'
my $data = [
{ name => q(&<>"'),
value => q(&<>"'),
class => 'x',
},
];
my $result = $parser->construct( @$data );
chomp( $expected );
chomp( $result );
is( $result, $expected, "construct & encode" );
}