45 lines
916 B
Perl
45 lines
916 B
Perl
package BeastBB::Mock::Database;
|
|
|
|
use Mojo::Base 'BeastBB::Database';
|
|
|
|
use 5.32.1;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Params::ValidationCompiler 'validation_for';
|
|
use Types::Standard qw/Str ArrayRef/;
|
|
|
|
sub new {
|
|
my $class = shift;
|
|
return $class->SUPER::new(
|
|
dsn => 'dbi:Mock:',
|
|
auto_migrate => 0,
|
|
max_connections => 1
|
|
);
|
|
}
|
|
|
|
{
|
|
my $validator = validation_for(
|
|
params => {
|
|
sql => { type => Str, optional => 1 },
|
|
results => { type => ArrayRef },
|
|
}
|
|
);
|
|
|
|
sub Mock {
|
|
my $self = shift;
|
|
my %params = $validator->(@_);
|
|
|
|
my $results = $params{results};
|
|
my $sql = $params{sql};
|
|
my $dbh = $self->Pg->db->dbh;
|
|
$dbh->{mock_add_resultset} = {
|
|
( ( defined $sql ) ? ( sql => $sql ) : () ),
|
|
results => $results,
|
|
};
|
|
return;
|
|
}
|
|
}
|
|
1;
|