Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

use strict;
use Capture::Tiny qw/capture_merged/;
use Test::Requires { 'DBD::SQLite' => 1.31 };
use lib 't/lib/';
my $dbh = DBIx::Sunny->connect('dbi:SQLite::memory:', '', '');
my $schema = TestSchema->new(dbh => $dbh);
ok($schema);
ok($schema->create_foo_t);
ok($schema->insert_foo( e => 3));
is( $schema->last_insert_id, 1 );
ok($schema->insert_foo( e => 4));
is( $schema->last_insert_id, 2 );
eval {
$schema->insert_foo( e => 'bar');
};
ok($@);
is $schema->count_foo(), 2;
is $schema->select_one_foo(), 3;
ok ! capture_merged { $schema->select_one_foo() };
is_deeply $schema->select_row_foo(), { id=>1, e => 3 };
ok ! capture_merged { $schema->select_row_foo() };
is_deeply $schema->select_row_foo_filter(), { id=>1, e => 9, ref => 'TestSchema' };
is join('|', map { $_->{e} } @{$schema->select_all_foo()}), '3|4';
is_deeply $schema->select_all_foo(limit=>1), [{ id=>1, e => 3 }];
ok ! capture_merged { $schema->select_all_foo(limit=>1) };
is join('|', map { $_->{e} } @{$schema->select_all_foo_filter()}), '9|16';
is join('|', map { $_->{e} } @{$schema->select_all_foo_deflater()}), '3';
is join('|', map { $_->{e} } @{$schema->select_all_in(ids=>[1,2])}), '3|4';
is_deeply $schema->select_all_in(ids=>[1,2,3], limit=>1), [{ id=>1, e => 3 }];
is_deeply $schema->select_all_in_deflater(ids=>[1,2,3], limit=>10), [{ id=>1, e => 3 }];
is_deeply $schema->retrieve_all_foo(limit=>1), [{ id=>1, e => 3 }];
eval {
$schema->retrieve_all_foo( limit => 'bar');
};
ok($@);
eval {
$schema->retrieve_all_foo('limit');
};
ok($@);
done_testing();