Firebird: unquoted_ddl option. Revert wrapped dbic code in common tests.
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / lib / dbixcsl_firebird_extra_tests.pm
CommitLineData
243c6ebc 1package dbixcsl_firebird_extra_tests;
2
3use strict;
4use warnings;
5use Test::More;
6use Test::Exception;
7
8sub extra { +{
243c6ebc 9 pre_drop_ddl => [
10 q{DROP TRIGGER "Firebird_Loader_Test1_BI"},
11 q{DROP GENERATOR "Gen_Firebird_Loader_Test1_Id"},
12 ],
13 drop => [
14 q{"Firebird_Loader_Test1"}
15 ],
18e84656 16 count => 6,
243c6ebc 17 run => sub {
18 my ($schema, $monikers, $classes) = @_;
19
18e84656 20 my $dbh = $schema->storage->dbh;
21
22# create a mixed case table
23 $dbh->do($_) for (
24q{
25 CREATE TABLE "Firebird_Loader_Test1" (
26 "Id" INTEGER NOT NULL PRIMARY KEY,
27 "Foo" INTEGER DEFAULT 42
28 )
29},
30q{
31 CREATE GENERATOR "Gen_Firebird_Loader_Test1_Id"
32},
33q{
34 CREATE TRIGGER "Firebird_Loader_Test1_BI" for "Firebird_Loader_Test1"
35 ACTIVE BEFORE INSERT POSITION 0
36 AS
37 BEGIN
38 IF (NEW."Id" IS NULL) THEN
39 NEW."Id" = GEN_ID("Gen_Firebird_Loader_Test1_Id",1);
40 END
41},
42 );
43
44 $schema->_loader->{unquoted_ddl} = 0;
45 $schema->_loader->_setup;
46 {
47 local $SIG{__WARN__} = sub {};
48 $schema->rescan;
49 }
50
51 ok ((my $rsrc = eval { $schema->resultset('FirebirdLoaderTest1')->result_source }),
243c6ebc 52 'got rsrc for mixed case table');
53
54 ok ((my $col_info = eval { $rsrc->column_info('Id') }),
55 'got column_info for column Id');
56
57 is $col_info->{accessor}, 'id', 'column Id has lowercase accessor "id"';
58
59 is $col_info->{is_auto_increment}, 1, 'is_auto_increment detected for mixed case trigger';
60
61 is $col_info->{sequence}, 'Gen_Firebird_Loader_Test1_Id', 'correct mixed case sequence name';
18e84656 62
63 is eval { $rsrc->column_info('Foo')->{default_value} }, 42, 'default_value detected for mixed case column';
243c6ebc 64 },
65}}
66
671;