use strict; use warnings; use Test::More; BEGIN { eval "use DBIx::Class::CDBICompat;"; if ($@) { plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required'); next; } eval "use DBD::SQLite"; plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 10); } use lib 't/lib'; use_ok('DBICTest'); DBICTest::Schema::CD->load_components(qw/CDBICompat CDBICompat::Pager/); my $schema = DBICTest->init_schema(compose_connection => 1); DBICTest::CD->result_source_instance->schema->storage($schema->storage); my ( $pager, $it ) = DBICTest::CD->page( {}, { order_by => 'title', rows => 3, page => 1 } ); cmp_ok( $pager->entries_on_this_page, '==', 3, "entries_on_this_page ok" ); cmp_ok( $pager->next_page, '==', 2, "next_page ok" ); is( $it->next->title, "Caterwaulin' Blues", "iterator->next ok" ); $it->next; $it->next; is( $it->next, undef, "next past end of page ok" ); ( $pager, $it ) = DBICTest::CD->page( {}, { rows => 2, page => 2, disable_sql_paging => 1 } ); cmp_ok( $pager->total_entries, '==', 5, "disable_sql_paging total_entries ok" ); cmp_ok( $pager->previous_page, '==', 1, "disable_sql_paging previous_page ok" ); is( $it->next->title, "Caterwaulin' Blues", "disable_sql_paging iterator->next ok" ); $it->next; is( $it->next, undef, "disable_sql_paging next past end of page ok" ); # based on a failing criteria submitted by waswas ( $pager, $it ) = DBICTest::CD->page( { title => [ -and => { -like => '%bees' }, { -not_like => 'Forkful%' } ] }, { rows => 5 } ); is( $it->count, 1, "complex abstract count ok" );