Elastic-Model
view release on metacpan or search on metacpan
t/50_scope/04_search.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use Test::More 0.96;
use Test::Exception;
use Scalar::Util qw(refaddr weaken);
use lib 't/lib';
our $es;
do 'es.pl';
use_ok 'MyApp' || print 'Bail out';
my $model = new_ok( 'MyApp', [ es => $es ], 'Model' );
ok my $ns = $model->namespace('myapp'), 'Got ns';
isa_ok my $index = $ns->index('myapp'), 'Elastic::Model::Index', 'Got index';
ok $index->create, 'Create index myapp';
isa_ok my $domain = $model->domain('myapp'), 'Elastic::Model::Domain',
'Domain';
isa_ok my $v = $domain->view(), 'Elastic::Model::View', 'View';
my ( $scope_1, $scope_2,, $scope_3, $u, $r, $o, $r2 );
$scope_1 = create_scope('Scope 1');
isa_ok $u = $domain->create( user => { id => 1, name => 'Clint' } ),
'MyApp::User', 'Create U1';
ok $index->refresh, 'Refresh index';
# same version, same scope;
$r = search('Same scope');
compare( 'Same version, same scope', $u, $r->first_object, 'same_obj' );
$scope_2 = create_scope('Scope 2');
# same version, higher scope;
$r = search('Higher scope');
compare( 'Same version, higher scope', $u, $r->first_object, 0, 'same_ver' );
# lower version, same scope
undef $scope_2;
$r = search('Scope 1');
$r2 = search('Scope 1');
$scope_2 = create_scope('Scope 2');
$u = get_user('Higher scope');
$u->name('John');
ok $u->save, 'Update user';
ok $index->refresh, 'Refresh index';
compare( 'lower version, same scope', $u, $r->first_object, 'same_obj' );
# lower version, higher scope
$scope_3 = create_scope('Scope 3');
compare( 'lower version, higher scope', $u, $r2->first_object, 0, 0 );
# higher version, higher scope
undef $scope_2;
undef $scope_3;
$u = get_user('User scope 1');
$r = search('Scope 1');
$r2 = search('Scope 1');
$scope_2 = create_scope('Scope 2');
( run in 1.321 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )