use strict; use warnings; use Test::More; use Capture::Tiny qw/capture_merged/; use DBIx::Sunny; use Test::Requires { 'DBD::SQLite' => 1.31 }; use lib 't/lib/'; use TestSchema; 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();