From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use strict;
use lib qw(lib t);
use feature 'say';
my $dbh = DBD::Mock::Session::GenerateFixtures->new({file => 't/db_fixtures/09_selectall_hashref.t.json'})->get_dbh();
my $sql = <<"SQL";
SELECT * FROM media_types WHERE id IN(?,?,?) ORDER BY id DESC
SQL
chomp $sql;
my $expected = {
'2' => {
'audio' => {
'media_type' => 'audio',
'id' => 2
}
},
'1' => {
'video' => {
'media_type' => 'video',
'id' => 1
}
},
'3' => {
'image' => {
'id' => 3,
'media_type' => 'image'
}
}
};
subtest 'selectall hashref with mutiple keys' => sub {
my $got = $dbh->selectall_hashref($sql, ['id', 'media_type'], undef, 2, 1, 3);
is($got, $expected);
};
subtest 'selectall hashref with single key' => sub {
my $expected = {
'2' => {
'media_type' => 'audio',
'id' => 2
},
'1' => {
'media_type' => 'video',
'id' => 1
},
'3' => {
'id' => 3,
'media_type' => 'image'
}
};
my $got = $dbh->selectall_hashref($sql, 'id', undef, 2, 1, 3);
is($got, $expected);
};
subtest 'selectall hashref with single key no data' => sub {
my $expected = {};
my $got = $dbh->selectall_hashref($sql, 'id', undef, 12, 12, 13);
is($got, $expected);
};
done_testing();