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