Alzabo
view release on metacpan or search on metacpan
t/14-unique-row-cache.t view on Meta::CPAN
#!/usr/bin/perl -w
use strict;
use File::Spec;
use lib '.', File::Spec->catdir( File::Spec->curdir, 't', 'lib' );
use Alzabo::Test::Utils;
use Test::More;
use Alzabo::Create;
use Alzabo::Config;
use Alzabo::Runtime::UniqueRowCache;
use Alzabo::Runtime;
my @rdbms_names = Alzabo::Test::Utils->rdbms_names;
unless (@rdbms_names)
{
plan skip_all => 'no test config provided';
exit;
}
plan tests => 12;
Alzabo::Test::Utils->remove_all_schemas;
# doesn't matter which RDBMS is used
my $rdbms = $rdbms_names[0];
Alzabo::Test::Utils->make_schema($rdbms);
my $config = Alzabo::Test::Utils->test_config_for($rdbms);
my $s = Alzabo::Runtime::Schema->load_from_file( name => $config->{schema_name} );
$s->connect( Alzabo::Test::Utils->connect_params_for($rdbms) );
{
my $dep1 = $s->table('department')->insert( values => { name => 'dep1' } );
my $pk = $dep1->select('department_id');
my $dep1_copy =
$s->table('department')->row_by_pk( pk => $pk );
is( "$dep1", "$dep1_copy",
"There should only be one reference for a given row" );
$dep1->delete;
ok( $dep1->is_deleted, 'copy is deleted' );
ok( $dep1_copy->is_deleted, 'copy is deleted' );
my $new_dep1 = $s->table('department')
->insert( values => { department_id => $pk, name => 'a new dep1' } );
ok( ! $new_dep1->is_deleted, 'new dep1 is not deleted' );
}
{
my $dep2 = $s->table('department')->insert( values => { name => 'dep2' } );
my $dep2_copy =
( run in 1.270 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )