--- trunk/t/1_document.t 2006/01/04 14:48:11 6 +++ trunk/t/1_Document.t 2006/01/05 15:05:58 26 @@ -3,7 +3,9 @@ use strict; use blib; -use Test::More tests => 25; +use Test::More tests => 31; +use Test::Exception; +use Data::Dumper; BEGIN { use_ok('Search::Estraier') }; @@ -17,8 +19,16 @@ 'size' => 42, }; +my @test_texts = ( + 'This is a test', + 'of pure-perl bindings', + 'for HyperEstraier' +); + ok(my $doc = new Search::Estraier::Document, 'new'); +isa_ok($doc, 'Search::Estraier::Document'); + cmp_ok($doc->id, '==', -1, 'id'); ok($doc->delete, "delete"); @@ -26,24 +36,32 @@ ok($doc = new Search::Estraier::Document, 'new'); foreach my $a (keys %{$attr_data}) { - ok($doc->add_attr($a, $attr_data->{$a}), "add_attr $a"); + my $d = $attr_data->{$a} || die; + ok($doc->add_attr($a, $d), "add_attr $a"); + cmp_ok($doc->attr($a), 'eq', $d, "attr $a = $d"); +} + +foreach my $t (@test_texts) { + ok($doc->add_text($t), "add_text: $t"); } -ok($doc->add_text('This is a demo'), 'add_text'); ok($doc->add_hidden_text('This is hidden text'), 'add_hidden_text'); +throws_ok { my $text = $doc->texts } qr/return array/, 'texts scalar'; +ok(my @texts = $doc->texts, 'texts array'); + ok(my $draft = $doc->dump_draft, 'dump_draft'); -diag "dump_draft:\n$draft"; +#diag "dump_draft:\n$draft"; -ok(my $doc2 = new_from_draft Search::Estraier::Document($draft), 'new_from_draft'); +ok(my $doc2 = new Search::Estraier::Document($draft), 'new from draft'); cmp_ok($doc2->dump_draft, 'eq', $draft, 'drafts same'); cmp_ok($doc->id, '==', -1, 'id'); cmp_ok($doc2->id, '==', -1, 'id'); -my @attr = $doc->attr_names; -diag "attr_names: ", join(',',@attr), "\n"; +ok(my @attr = $doc->attr_names, 'attr_names'); +#diag "attr_names: ", join(',',@attr), "\n"; cmp_ok(scalar @attr, '==', 2, 'attr_names'); @@ -51,28 +69,17 @@ foreach my $a (keys %{$attr_data}) { cmp_ok($attr_data->{$a}, 'eq', $doc->attr($a), "attr $a = ".$attr_data->{$a}); - ok($doc->add_attr($a, ''), "delete attribute"); + ok($doc->add_attr($a, undef), "delete attribute"); } +@attr = $doc->attr_names; #diag "attr_names left: ", join(',',$doc->attr_names), "\n"; -cmp_ok($doc->attr_names, '==' , 0, "attributes removed"); - -my @texts = $doc->texts; -diag "texts: ", join(',',@texts), "\n"; - -cmp_ok(scalar @texts, '==', 1, 'texts'); - -SKIP: { - skip "est_keywords not implemented", 2; - - my @keywords = $doc->keywords; - diag "keywords: ", join(',',@keywords), "\n"; - - cmp_ok(scalar @keywords, '==', 1, 'keywords'); -} +cmp_ok(@attr, '==' , 0, "attributes removed"); +#diag "texts: ", join(',',@texts), "\n"; +ok(eq_array(\@test_texts, \@texts), 'texts'); -ok(my $snippet = $doc->make_snippet(480, 96, 96, qw(demo is)), "make_snippet"); -diag "make_snippet:\n$snippet"; +ok(my $cat_text = $doc->cat_texts, 'cat_text'); +#diag "cat_texts: $cat_text"; -ok($doc->scan_words(qw(this is demo)), "scan_words"); +#diag Dumper($doc);