NAME

Test::Fixture::DBI - load fixture data to database.

SYNOPSIS

use DBI;
use File::Temp qw(tempfile);
use Test::More;
use Test::Fixture::DBI;

my ( undef, $filename ) = tempfile;
my $dbh = DBI->connect( "dbi:SQLite:dbname=$filename", "", "" );

construct_database(
  dbh => $dbh,
  database => '/path/to/schema.yaml',
);

construct_fixture(
  dbh => $dbh,
  fixture => '/path/to/fixture.yaml',
);

DESCRIPTION

Test::Fixture::DBI is fixture test library for DBI.

SETUP

Before using this module, you must create database definition and fixture data. The following is creating database definition using make_database_yaml.pl.

$ make_database_yaml.pl -d "dbi:mysql:dbname=social;host=testdb" -u root -p password -o /path/to/schema.yaml

Next step is create fixture,

$ make_fixture_yaml.pl -d "dbi:mysql:dbname=social;host=testdb" -u root -p password -t activity -n id \
  -e "SELECT * FROM activity WHERE app_id = 12 ORDER BY created_on DESC LIMIT 10" -o /path/to/fixture.yaml

FUNCTIONS

construct_database( %specs )

The following is %specs details

  • dbh

    Required parameter. dbh is DBI's DBI::db object;

  • database

    Required parameter. database is ARRAYREF or SCALAR. specify database name.

  • schema

    Optional parameter. schema is ARRAYREF. if schema parameter is specified, then load particular schema from database.

  • procedure

    Optional parameter. procedure is ARRAYREF. if procedure parameter is specified, then load particular procedures from database.

  • function

    Optional parameter. function is ARRAYREF. if function parameter is specified, then load particular functions from database.

  • index

    Optional parameter. index is ARRAYREF. if index parameter is specified, then load particular indexes from database.

construct_fixture( %specs )

The following is %specs details

  • dbh

    Required parameter. dbh is DBI's DBI::db object;

  • fixture

    Required parameter. fixture is SCALAR or ARRAYREF, Specify fixture files.

  • opts

    Optional parameter. opts is HASHREF. opts has bulk_insert key. if the bulk_insert value is true, then using bulk insert on loading fixture data.

construct_trigger( %specs )

The following is %specs details

  • dbh

    Required parameter. dbh is DBI's DBI::db object;

  • database

    Optional parameter. database is SCALAR. specify database name.

  • schema

    Optional parameter. schema is ARRAYREF. if schema parameter is specified, then create particular triggers related specified schema on the database.

AUTHOR

Toru Yamaguchi zigorou@cpan.org

Yuji Shimada xaicron@cpan.org

SEE ALSO

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.