package tests::SQLExtRegistryTest;
use strict;
use base qw/Lire::Test::TestCase tests::TestStoreFixture/;
use Lire::SQLExt::Registry;
sub new {
my $self = shift()->SUPER::new( @_ );
$self->init();
$self;
}
sub set_up {
my $self = shift->SUPER::set_up();
$self->set_up_test_store();
}
sub tear_down {
my $self = shift->SUPER::tear_down();
$self->tear_down_test_store();
}
sub mytestfunc {
return 'mytestfunc';
}
sub test_register_aggregates {
my $self = $_[0];
local @Lire::SQLExt::Registry::EXT_AGGREGATES =
(
[ 'myaggregate', 0, 'myaggregate' ]
);
my $dbh = $self->{'store'}->_dbh();
Lire::SQLExt::Registry->register_aggregates( $dbh );
my $res = $dbh->selectrow_arrayref( "SELECT myaggregate() FROM dlf_test");
$self->assert_deep_equals( [ 260 ], $res );
}
sub test_register_functions {
my $self = $_[0];
local @Lire::SQLExt::Registry::EXT_FUNCTIONS =
(
[ 'mytestfunc', 0, \&mytestfunc ]
);
my $dbh = $self->{'store'}->_dbh();
Lire::SQLExt::Registry->register_functions( $dbh );
my $res = $dbh->selectrow_arrayref( "SELECT mytestfunc()" );
$self->assert_deep_equals( [ 'mytestfunc' ], $res );
}
package myaggregate;
sub new {
return bless {}, shift;
}
sub step {
return;
}
sub finalize {
return 260;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1