#!/usr/bin/perl -w use strict; use blib; use Test::More tests => 34; use Test::Exception; #use Data::Dumper; BEGIN { use_ok('Search::Estraier') }; ok(my $cond = new Search::Estraier::Condition, 'new'); isa_ok($cond, 'Search::Estraier::Condition'); cmp_ok($cond->max, '==', -1, 'max'); cmp_ok($cond->options, '==', 0, 'options'); ok($cond->set_phrase('search'), 'set_phrase'); ok($cond->add_attr('@foo BAR baz'), 'set_attr'); ok($cond->set_order('@foo ASC'), 'set_order'); ok($cond->set_max(42), 'set_max, number'); throws_ok { $cond->set_max('foo') } qr/number/, 'set_max, NaN'; my $old_options = -1; my @all_options = qw/SURE USUAL FAST AGITO NOIDF SIMPLE/; my $all_opts = 0; foreach my $opt (@all_options) { ok(my $options = $cond->set_options( $opt ), 'set_option '.$opt); cmp_ok($options, '!=', $old_options, "options changed"); $old_options = $options; $all_opts += $options; } cmp_ok($cond->set_options(@all_options), '==', $all_opts, "set_option all!"); throws_ok { $cond->set_options('foo') } qr/foo/, "set_option invalid"; cmp_ok($cond->set_options( SURE => 1 ), '==', $cond->set_options('SURE'), "set_option backward compatibility"); ok($cond->set_mask(qw/0 1 2/), 'mask'); my $v; cmp_ok($v = $cond->phrase, 'eq', 'search', "phrase: $v"); cmp_ok($v = $cond->max, '==', 42, "max: $v"); cmp_ok($v = $cond->options, '!=', 0, "options: $v"); #diag "attrs: ",join(",",$cond->attrs); cmp_ok($cond->attrs, '==', 1, 'one attrs'); ok($cond->add_attr('@foo2 BAR2 baz2'), 'set_attr'); #diag "attrs: ",join(",",$cond->attrs); cmp_ok($cond->attrs, '==', 2, 'two attrs'); ok($cond->set_distinct('@foo'), 'set_distinct'); cmp_ok($cond->distinct, 'eq', '@foo', 'distinct');