1 |
#!/usr/bin/perl -w |
2 |
|
3 |
use strict; |
4 |
use blib; |
5 |
|
6 |
use Test::More tests => 34; |
7 |
use Test::Exception; |
8 |
#use Data::Dumper; |
9 |
|
10 |
BEGIN { use_ok('Search::Estraier') }; |
11 |
|
12 |
ok(my $cond = new Search::Estraier::Condition, 'new'); |
13 |
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 |
ok($cond->set_mask(qw/0 1 2/), 'mask'); |
41 |
|
42 |
my $v; |
43 |
cmp_ok($v = $cond->phrase, 'eq', 'search', "phrase: $v"); |
44 |
cmp_ok($v = $cond->max, '==', 42, "max: $v"); |
45 |
cmp_ok($v = $cond->options, '!=', 0, "options: $v"); |
46 |
|
47 |
#diag "attrs: ",join(",",$cond->attrs); |
48 |
cmp_ok($cond->attrs, '==', 1, 'one attrs'); |
49 |
ok($cond->add_attr('@foo2 BAR2 baz2'), 'set_attr'); |
50 |
#diag "attrs: ",join(",",$cond->attrs); |
51 |
cmp_ok($cond->attrs, '==', 2, 'two attrs'); |
52 |
|
53 |
ok($cond->set_distinct('@foo'), 'set_distinct'); |
54 |
cmp_ok($cond->distinct, 'eq', '@foo', 'distinct'); |