DBIx-Class-Schema-Loader
view release on metacpan or search on metacpan
t/lib/dbixcsl_common_tests.pm view on Meta::CPAN
package dbixcsl_common_tests;
use strict;
use warnings;
use Test::More;
use Test::Deep;
use Test::Exception;
use Test::Differences;
use DBIx::Class::Schema::Loader;
use Class::Unload;
use File::Path 'rmtree';
use curry;
use DBI;
use File::Find 'find';
use Class::Unload ();
use DBIx::Class::Schema::Loader::Utils qw/dumper_squashed slurp_file sigwarn_silencer apply/;
use DBIx::Class::Schema::Loader::Optional::Dependencies ();
use Try::Tiny;
use File::Spec::Functions 'catfile';
use File::Basename 'basename';
use namespace::clean;
use dbixcsl_test_dir '$tdir';
use constant DUMP_DIR => "$tdir/common_dump";
rmtree DUMP_DIR;
use constant RESCAN_WARNINGS => qr/(?i:loader_test|LoaderTest)\d+s? has no primary key|^Dumping manual schema|^Schema dump completed|collides with an inherited method|invalidates \d+ active statement|^Bad table or view/;
# skip schema-qualified tables in the Pg tests
use constant SOURCE_DDL => qr/CREATE (?:TABLE|VIEW) (?!"dbicsl[.-]test")/i;
use constant SCHEMA_CLASS => 'DBIXCSL_Test::Schema';
use constant RESULT_NAMESPACE => [ 'MyResult', 'MyResultTwo' ];
use constant RESULTSET_NAMESPACE => [ 'MyResultSet', 'MyResultSetTwo' ];
sub new {
my $class = shift;
my $self;
if( ref($_[0]) eq 'HASH') {
my $args = shift;
$self = { (%$args) };
}
else {
$self = { @_ };
}
# Only MySQL uses this
$self->{innodb} ||= '';
# DB2 and Firebird don't support 'field type NULL'
$self->{null} = 'NULL' unless defined $self->{null};
$self->{verbose} = $ENV{TEST_VERBOSE} || 0;
# Optional extra tables and tests
$self->{extra} ||= {};
$self->{basic_date_datatype} ||= 'DATE';
# Not all DBS do SQL-standard CURRENT_TIMESTAMP
$self->{default_function} ||= "current_timestamp";
$self->{default_function_def} ||= "timestamp default $self->{default_function}";
( run in 2.971 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )