Firebird: mixed case support (wip)
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / lib / dbixcsl_firebird_extra_tests.pm
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 { +{
9     create => [
10 # test a mixed case table
11         q{
12             CREATE TABLE "Firebird_Loader_Test1" (
13                 "Id" INTEGER NOT NULL PRIMARY KEY
14             )
15         },
16         q{
17             CREATE GENERATOR "Gen_Firebird_Loader_Test1_Id"
18         },
19         q{
20             CREATE TRIGGER "Firebird_Loader_Test1_BI" for "Firebird_Loader_Test1"
21             ACTIVE BEFORE INSERT POSITION 0
22             AS
23             BEGIN
24              IF (NEW."Id" IS NULL) THEN
25               NEW."Id" = GEN_ID("Gen_Firebird_Loader_Test1_Id",1);
26             END
27         },
28     ],
29     pre_drop_ddl => [
30         q{DROP TRIGGER "Firebird_Loader_Test1_BI"},
31         q{DROP GENERATOR "Gen_Firebird_Loader_Test1_Id"},
32     ],
33     drop   => [
34         q{"Firebird_Loader_Test1"}
35     ],
36     count  => 5,
37     run    => sub {
38         my ($schema, $monikers, $classes) = @_;
39
40         ok ((my $rsrc = eval { $schema->resultset($monikers->{Firebird_Loader_Test1})->result_source }),
41             'got rsrc for mixed case table');
42
43         ok ((my $col_info = eval { $rsrc->column_info('Id') }),
44             'got column_info for column Id');
45
46         is $col_info->{accessor}, 'id', 'column Id has lowercase accessor "id"';
47
48         is $col_info->{is_auto_increment}, 1, 'is_auto_increment detected for mixed case trigger';
49
50         is $col_info->{sequence}, 'Gen_Firebird_Loader_Test1_Id', 'correct mixed case sequence name';
51     },
52 }}
53
54 1;