3 |
use strict; |
use strict; |
4 |
use blib; |
use blib; |
5 |
|
|
6 |
use Test::More tests => 3; |
use Test::More tests => 31; |
7 |
#use Test::Exception; |
use Test::Exception; |
8 |
#use Data::Dumper; |
#use Data::Dumper; |
9 |
|
|
10 |
BEGIN { use_ok('Search::Estraier') }; |
BEGIN { use_ok('Search::Estraier') }; |
12 |
ok(my $cond = new Search::Estraier::Condition, 'new'); |
ok(my $cond = new Search::Estraier::Condition, 'new'); |
13 |
isa_ok($cond, 'Search::Estraier::Condition'); |
isa_ok($cond, 'Search::Estraier::Condition'); |
14 |
|
|
15 |
|
cmp_ok($cond->max, '==', -1, 'max'); |
16 |
|
cmp_ok($cond->options, '==', 0, 'options'); |
17 |
|
|
18 |
|
ok($cond->set_phrase('search'), 'set_phrase'); |
19 |
|
ok($cond->add_attr('@foo BAR baz'), 'set_attr'); |
20 |
|
ok($cond->set_order('@foo ASC'), 'set_order'); |
21 |
|
ok($cond->set_max(42), 'set_max, number'); |
22 |
|
throws_ok { $cond->set_max('foo') } qr/number/, 'set_max, NaN'; |
23 |
|
|
24 |
|
my $old_options = -1; |
25 |
|
my @all_options = qw/SURE USUAL FAST AGITO NOIDF SIMPLE/; |
26 |
|
my $all_opts = 0; |
27 |
|
foreach my $opt (@all_options) { |
28 |
|
ok(my $options = $cond->set_options( $opt ), 'set_option '.$opt); |
29 |
|
cmp_ok($options, '!=', $old_options, "options changed"); |
30 |
|
$old_options = $options; |
31 |
|
$all_opts += $options; |
32 |
|
} |
33 |
|
|
34 |
|
cmp_ok($cond->set_options(@all_options), '==', $all_opts, "set_option all!"); |
35 |
|
|
36 |
|
throws_ok { $cond->set_options('foo') } qr/foo/, "set_option invalid"; |
37 |
|
|
38 |
|
cmp_ok($cond->set_options( SURE => 1 ), '==', $cond->set_options('SURE'), "set_option backward compatibility"); |
39 |
|
|
40 |
|
my $v; |
41 |
|
cmp_ok($v = $cond->phrase, 'eq', 'search', "phrase: $v"); |
42 |
|
cmp_ok($v = $cond->max, '==', 42, "max: $v"); |
43 |
|
cmp_ok($v = $cond->options, '!=', 0, "options: $v"); |
44 |
|
|
45 |
|
#diag "attrs: ",join(",",$cond->attrs); |
46 |
|
cmp_ok($cond->attrs, '==', 1, 'one attrs'); |
47 |
|
ok($cond->add_attr('@foo2 BAR2 baz2'), 'set_attr'); |
48 |
|
#diag "attrs: ",join(",",$cond->attrs); |
49 |
|
cmp_ok($cond->attrs, '==', 2, 'two attrs'); |