Apache-Solr
view release on metacpan or search on metacpan
#!/usr/bin/perl
#XXX !!! DO NOT EDIT t/21json.t, because it is a symlink to t/20xml.t
use warnings;
use strict;
use lib 'lib';
use Test::More;
my $server;
use Data::Dumper;
$Data::Dumper::Indent = 1;
$Data::Dumper::Quotekeys = 0;
BEGIN {
$server = $ENV{SOLR_TEST_SERVER}
or plan skip_all => "no SOLR_TEST_SERVER provided";
$server .= '/markov';
}
require_ok('Apache::Solr');
require_ok('Apache::Solr::Document');
my $format = $0 =~ m/xml/ ? 'xml' : 'json';
my $FORMAT = uc $format;
my $solr = Apache::Solr->new
( format => $FORMAT
, server => $server
, retry_max => 3
, retry_wait => 2
);
ok(defined $solr, "instantiated client in $format");
isa_ok($solr, 'Apache::Solr::'.$FORMAT);
my $result = eval { $solr->commit };
ok(!$@, 'try commit:'.$@);
cmp_ok($result->solrStatus, '==', 0, 'Commit status success');
isa_ok($result, 'Apache::Solr::Result');
is($result->endpoint, "$result");
#$result->showTimings(\*STDERR);
ok($result->success, 'successful');
# reset the database
my $r0 = $solr->delete(id => [ qw/A B C/ ]);
ok($r0->success, 'delete succeeded');
#warn Dumper $r0;
### test $solr->addDocument()
my $d1a = Apache::Solr::Document->new
( fields => [ id => 'A', subject => '1 2 3', content => "<html>tic tac", content_type => 'text/html' ]
);
my $d1b = Apache::Solr::Document->new
( fields => [ id => 'B', content => "<body>tac too", content_type => 'text/html' ]
, boost => '5'
);
$solr->addDocument([$d1a, $d1b], commit => 1, overwrite => 1);
### test $solr->terms()
( run in 0.589 second using v1.01-cache-2.11-cpan-39bf76dae61 )