DBIx-Class-Wrapper
view release on metacpan or search on metacpan
t/03-loop_through.t view on Meta::CPAN
#!perl -T
use Test::More;
use Test::Fatal qw/dies_ok lives_ok/;
# use File::Temp;
use DBI;
use DBD::SQLite;
use lib 't/lib';
use My::Schema;
use My::Model;
my $TEST_SIZE = 1000;
## Connect to a DB and dynamically build the DBIC model.
ok( my $dbh = DBI->connect("dbi:SQLite::memory:" , "" , "") , "Ok connected as a DBI");
ok( $dbh->{AutoCommit} = 1 , "Ok autocommit set");
ok( $dbh->do("CREATE TABLE simple_record(some_id INTEGER PRIMARY KEY AUTOINCREMENT , value INTEGER NOT NULL)") , "Ok creating some simple table");
ok( $dbh->do(qq{ CREATE TABLE complex_record(top_id INTEGER NOT NULL,
middle_id VARCHAR(255) NOT NULL,
bottom_id BOOLEAN NOT NULL,
value INTEGER NOT NULL,
PRIMARY KEY( top_id, middle_id , bottom_id )
)
}) , "Ok can create complex record table" );
## Build a schema dynamically.
ok( my $schema = My::Schema->connect(sub{ return $dbh ;} , { unsafe => 1 } ), "Ok built schema with dbh");
## Just to check
ok( $schema->resultset('SimpleRecord') , "Simple record is there");
ok( $schema->resultset('ComplexRecord') , "Complex record is there");
## Build a My::Model using it
ok( my $bm = My::Model->new({ dbic_schema => $schema }) , "Ok built a model");
ok( my $sf = $bm->dbic_factory('SimpleRecord') );
ok( my $cf = $bm->dbic_factory('ComplexRecord') );
my @SIMPLE_ROWS = ();
# Insert a lot of dummy data
{
my $i = 0;
while( $i++ < $TEST_SIZE ){
push @SIMPLE_ROWS , $sf->create({ value => $i });
}
}
is( $sf->count() , $TEST_SIZE, "Ok got right number of dummy data");
my @COMPLEX_ROWS = ();
{
my $top = 0;
my $middle = 0;
my $bottom = 0;
my $n_rows = $TEST_SIZE;
while( $n_rows-- ){
push @COMPLEX_ROWS , $cf->create({ top_id => $top,
middle_id => 'STRING'.sprintf('%02d',$middle),
bottom_id => $bottom,
( run in 0.984 second using v1.01-cache-2.11-cpan-54e63673c56 )