Commit | Line | Data |
243c6ebc |
1 | package dbixcsl_firebird_extra_tests; |
2 | |
3 | use strict; |
4 | use warnings; |
5 | use Test::More; |
6 | use Test::Exception; |
7 | |
8 | sub 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 ( |
24 | q{ |
25 | CREATE TABLE "Firebird_Loader_Test1" ( |
26 | "Id" INTEGER NOT NULL PRIMARY KEY, |
27 | "Foo" INTEGER DEFAULT 42 |
28 | ) |
29 | }, |
30 | q{ |
31 | CREATE GENERATOR "Gen_Firebird_Loader_Test1_Id" |
32 | }, |
33 | q{ |
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 | |
67 | 1; |