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 )