#!/usr/bin/perl
package KiokuDB::Test::Fixture::SimpleSearch;
use Moose;
use Test::More;
use Test::Moose;
use KiokuDB::Test::Person;
use namespace::clean -except => 'meta';
with qw(KiokuDB::Test::Fixture) => { -excludes => 'required_backend_roles' };
use constant required_backend_roles => qw(Clear Query::Simple);
sub create {
my $self = shift;
( map { KiokuDB::Test::Person->new(%$_) }
{ name => "foo", age => 3 },
{ name => "bar", age => 3 },
{ name => "gorch", age => 5, friends => [ KiokuDB::Test::Person->new( name => "quxx", age => 6 ) ] },
);
}
before populate => sub {
my $self = shift;
$self->backend->clear;
};
sub verify {
my $self = shift;
{
my $s = $self->new_scope;
my $res = $self->search({ name => "foo" });
does_ok( $res, "Data::Stream::Bulk" );
my @objs = $res->all;
is( @objs, 1, "one object" );
is( $objs[0]->name, "foo", "name attr" );
}
$self->no_live_objects;
{
my $s = $self->new_scope;
my $res = $self->search({ age => 3 });
does_ok( $res, "Data::Stream::Bulk" );
my @objs = $res->all;
is( @objs, 2, "two objects" );
@objs = sort { $a->name cmp $b->name } @objs;
is( $objs[0]->name, "bar", "name attr" );
is( $objs[1]->name, "foo", "name attr" );
}
}
__PACKAGE__->meta->make_immutable;
__PACKAGE__
__END__