DBIx-Class-Helper-TableSample

 view release on metacpan or  search on metacpan

t/lib/Test/TableSample/Role.pm  view on Meta::CPAN

package Test::TableSample::Role;

use Test::Roo::Role;

use Class::Load qw/ load_class /;
use Ref::Util qw/ is_plain_hashref /;
use SQL::Abstract::Test import => [qw/ is_same_sql_bind /];

has dsn => (
    is      => 'lazy',
    default => 'dbi:SQLite::memory:',
);

has schema_class => (
    is      => 'ro',
    default => 'Test::Schema',
);

has schema => (
    is      => 'lazy',
    builder => sub {
        my ($self) = @_;
        my $class = $self->schema_class;
        load_class($class);
        return $class->deploy_or_connect( $self->dsn );
    },
);

has table_class => (
    is       => 'ro',
    required => 1,
);

has where => (
    is      => 'ro',
    default => sub { return undef },
);

has attr => (
    is       => 'ro',
    required => 1,
);

has resultset => (
    is      => 'lazy',
    builder => sub {
        my ($self) = @_;
        return $self->schema->resultset( $self->table_class )
          ->search_rs( $self->where, $self->attr );
    },
    handles => [qw/ current_source_alias /],
);

has sql => (
    is       => 'ro',
    required => 1,
);

has bind => (
    is => 'ro',
    default => sub { [] },
);

sub _build_description {
    my ($self) = @_;
    return $self->sql;



( run in 0.980 second using v1.01-cache-2.11-cpan-39bf76dae61 )