use strict;
use lib qw(t/lib);
use dbixcsl_common_tests;
+use Test::More;
+use Test::Exception;
my $dsn = $ENV{DBICTEST_ORA_DSN} || '';
my $user = $ENV{DBICTEST_ORA_USER} || '';
dsn => $dsn,
user => $user,
password => $password,
+ extra => {
+ create => [
+ q{
+ CREATE TABLE oracle_loader_test1 (
+ id INTEGER PRIMARY KEY,
+ a_varchar VARCHAR2(100) DEFAULT 'foo',
+ an_int INTEGER DEFAULT 42,
+ a_double DOUBLE PRECISION DEFAULT 10.555,
+ a_date DATE DEFAULT sysdate
+ )
+ },
+ ],
+ drop => [ qw/ oracle_loader_test1 / ],
+ count => 5,
+ run => sub {
+ my ($schema, $monikers, $classes) = @_;
+
+ my $rsrc = $schema->resultset($monikers->{oracle_loader_test1})
+ ->result_source;
+
+ is $rsrc->column_info('a_varchar')->{default_value},
+ 'foo',
+ 'constant character default';
+
+ is $rsrc->column_info('an_int')->{default_value},
+ 42,
+ 'constant integer default';
+
+ is $rsrc->column_info('a_double')->{default_value},
+ 10.555,
+ 'constant numeric default';
+
+ my $function_default =
+ $rsrc->column_info('a_date')->{default_value};
+
+ ok ((ref $function_default eq 'SCALAR'),
+ 'default_value for function default is a scalar ref')
+ or diag "default_value is: ", $function_default
+ ;
+
+ eval { is $$function_default,
+ 'sysdate',
+ 'default_value for function default is correct' };
+ },
+ },
);
if( !$dsn || !$user ) {