use warnings;
use strict;
use Test::More;
use lib qw(t/lib);
use DBICTest;
my $schema = DBICTest->init_schema(
no_populate => 1,
);
$schema->resultset('CD')->create({
cdid => 0,
artist => {
artistid => 0,
name => '',
rank => 0,
charfield => 0,
},
title => '',
year => 0,
genreid => 0,
single_track => 0,
});
my $orig_debug = $schema->storage->debug;
my $queries = 0;
$schema->storage->debugcb(sub { $queries++; });
$schema->storage->debug(1);
my $cd = $schema->resultset('CD')->search( {}, { prefetch => 'artist' })->next;
is_deeply
{ $cd->get_columns },
{
artist => 0,
cdid => 0,
genreid => 0,
single_track => 0,
title => '',
year => 0,
},
'Expected CD columns present',
;
is_deeply
{ $cd->artist->get_columns },
{
artistid => 0,
charfield => 0,
name => "",
rank => 0,
},
'Expected Artist columns present',
;
is $queries, 1, 'Only one query fired - prefetch worked';
$schema->storage->debugcb(undef);
$schema->storage->debug($orig_debug);
done_testing;