1#!/usr/bin/perl -w 2 3=head1 NAME 4 5t/indexdeleter.t - test Plucene::Simple 6 7=head1 DESCRIPTION 8 9Tests searching after everything has been removed from an index. 10 11=cut 12 13use strict; 14use warnings; 15 16use Plucene::Simple; 17 18use File::Path; 19use Test::More tests => 4; 20 21use constant DIRECTORY => "/tmp/testindex/$$"; 22 23END { rmtree DIRECTORY } 24 25#------------------------------------------------------------------------------ 26# Helper stuff 27#------------------------------------------------------------------------------ 28 29sub data { 30 return [ 31 wsc => { name => "Writing Solid Code" }, 32 rap => { name => "Rapid Development" }, 33 gui => { name => "GUI Bloopers" }, 34 ora => { name => "Using Oracle 8i" }, 35 app => { name => "Advanced Perl Programming" }, 36 xpe => { name => "Extreme Programming Explained" }, 37 boo => { name => "Boo-Hoo" }, 38 dbs => { name => "Designing From Both Sides of the Screen" }, 39 dbi => { name => "Programming the Perl DBI" }, 40 ]; 41} 42 43#------------------------------------------------------------------------------ 44# Tests 45#------------------------------------------------------------------------------ 46 47my $plucy; 48 49{ # Add some stuff into the index 50 my @data = @{ data() }; 51 isa_ok $plucy = Plucene::Simple->open(DIRECTORY) => 'Plucene::Simple'; 52 $plucy->add(@data); 53} 54 55{ # search the index 56 my @docs = $plucy->search("name:perl"); 57 is @docs, 2, "2 results for Perl"; 58 is_deeply \@docs, [ "app", "dbi" ], "The correct ones"; 59} 60 61{ # delete everything from the index 62 my @data = @{ data() }; 63 while (my ($id, $terms) = splice @data, 0, 2) { 64 $plucy->delete_document($id); 65 } 66} 67 68{ # search again 69 my @docs = $plucy->search("name:oracle"); 70 is @docs, 0, "No results for oracle (after deletion)"; 71} 72