7f4129f81ff011619b2cda34bdd7a28c66b521bd
[perl-pqf.git] / t / 1-node.t
1 # $Id: 1-node.t,v 1.2 2004-12-17 15:32:20 mike Exp $
2
3 use strict;
4 use warnings;
5 use Test::More tests => 11;
6 BEGIN { use_ok('Net::Z3950::PQF') };
7
8 my $term1 = new Net::Z3950::PQF::TermNode('unix');
9 ok(defined $term1, "created simple term node");
10 my $text = $term1->render(0);
11 ok($text eq "term: unix\n", "rendered simple term node");
12
13 my $term2 = new Net::Z3950::PQF::TermNode('elements',
14                                           [ "bib-1", 1, 21 ],
15                                           [ "bib-1", 2, 3 ]);
16 ok(defined $term2, "created term node with attrs");
17 $text = $term2->render(0);
18 ok($text eq "term: elements\n\tattr: bib-1 1=21\n\tattr: bib-1 2=3\n",
19         "rendered term node with attrs");
20
21 my $or = new Net::Z3950::PQF::OrNode($term1, $term2);
22 ok(defined $or, "created or node");
23 $text = $or->render(0);
24 my $wanted = <<'__EOT__';
25 or
26         term: unix
27         term: elements
28                 attr: bib-1 1=21
29                 attr: bib-1 2=3
30 __EOT__
31 ok($text eq $wanted, "rendered or node");
32
33 my $term3 = new Net::Z3950::PQF::TermNode('kerni',
34                                           [ "bib-1", 1, 1003 ],
35                                           [ "bib-1", 2, 3 ],
36                                           [ "bib-1", 5, 1 ]);
37 ok(defined $term3, "created third term node");
38 $text = $term3->render(0);
39 ok($text eq ("term: kerni\n\tattr: bib-1 1=1003\n" .
40              "\tattr: bib-1 2=3\n\tattr: bib-1 5=1\n"),
41    "rendered third term node");
42
43 my $and = new Net::Z3950::PQF::AndNode($or, $term3);
44 ok(defined $and, "created and node");
45 $text = $and->render(0);
46 $wanted = <<'__EOT__';
47 and
48         or
49                 term: unix
50                 term: elements
51                         attr: bib-1 1=21
52                         attr: bib-1 2=3
53         term: kerni
54                 attr: bib-1 1=1003
55                 attr: bib-1 2=3
56                 attr: bib-1 5=1
57 __EOT__
58 ok($text eq $wanted, "rendered and node");