DBIx-Class-Loader

 view release on metacpan or  search on metacpan

t/dbixcl_common_tests.pm  view on Meta::CPAN

package dbixcl_common_tests;

use strict;

use Test::More;
use DBIx::Class::Loader;
use DBI;

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} ||= '';

    $self->{verbose} = $ENV{TEST_VERBOSE} || 0;

    return bless $self => $class;
}

sub skip_tests {
    my ($self, $why) = @_;

    plan skip_all => $why;
}

sub run_tests {
    my $self = shift;

    plan tests => 26;

    $self->create();

    my $namespace = 'DBIXCL_Test_' . $self->{vendor};

    my $debug = ($self->{verbose} > 1) ? 1 : 0;

    my %loader_opts = (
        dsn           => $self->{dsn},
        user          => $self->{user},
        password      => $self->{password},
        namespace     => $namespace,
        constraint    => '^(?:\S+\.)?(?i:loader_test)[0-9]+$',
        relationships => 1,
        debug         => $debug,
    );

    $loader_opts{schema} = $self->{schema} if $self->{schema};
    $loader_opts{dropschema} = $self->{dropschema} if $self->{dropschema};

    my $loader = DBIx::Class::Loader->new(%loader_opts);

    my $class1 = $loader->find_class("loader_test1");
    my $class2 = $loader->find_class("loader_test2");

    is( $class1, "${namespace}::LoaderTest1" );
    is( $class2, "${namespace}::LoaderTest2" );

    my $obj    = $class1->find(1);
    is( $obj->id,  1 );
    is( $obj->dat, "foo" );
    is( $class2->count, 4 );

    my ($obj2) = $class2->find( dat => 'bbb' );
    is( $obj2->id, 2 );

    SKIP: {
        skip $self->{skip_rels}, 20 if $self->{skip_rels};

        my $class3 = $loader->find_class("loader_test3");
        my $class4 = $loader->find_class("loader_test4");
        my $class5 = $loader->find_class("loader_test5");
        my $class6 = $loader->find_class("loader_test6");
        my $class7 = $loader->find_class("loader_test7");
        my $class8 = $loader->find_class("loader_test8");
        my $class9 = $loader->find_class("loader_test9");

        is( $class3, "${namespace}::LoaderTest3" );

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.913 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )