forked from petdance/webservice-solr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfield.t
51 lines (40 loc) · 1.36 KB
/
field.t
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
use Test::More tests => 9;
use strict;
use warnings;
use WebService::Solr::Field;
{
my $f = WebService::Solr::Field->new( id => '0001' );
my $expected = '<field name="id">0001</field>';
is( $f->to_xml, $expected, 'to_xml(), default attrs' );
}
{
my $f = WebService::Solr::Field->new( id => '0001', { boost => 3 } );
my $expected = '<field boost="3" name="id">0001</field>';
is( $f->to_xml, $expected, 'to_xml(), all attrs' );
}
{
my $f = WebService::Solr::Field->new( id => '0001', { boost => 3.1 } );
my $expected = '<field boost="3.1" name="id">0001</field>';
is( $f->to_xml, $expected, 'to_xml(), all attrs, float for boost' );
}
{
my $f = eval { WebService::Solr::Field->new( undef() => '0001' ) };
ok( !defined $f, 'name required' );
ok( $@, 'name required' );
}
{
my $f = eval { WebService::Solr::Field->new( id => undef ) };
ok( !defined $f, 'value required' );
ok( $@, 'value required' );
}
# XML escaping
{
my $f = WebService::Solr::Field->new( foo => 'This & That' );
my $expected = '<field name="foo">This & That</field>';
is( $f->to_xml, $expected, 'to_xml(), escaped (1)' );
}
{
my $f = WebService::Solr::Field->new( foo => 'This & That' );
my $expected = '<field name="foo">This &amp; That</field>';
is( $f->to_xml, $expected, 'to_xml(), escaped (2)' );
}