BeastBB/test/BeastBB/Mock/Database.pm

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;