Skip to content

Commit 94a397a

Browse files
committed
Add unit test for create table SQLite
1 parent d01dd7e commit 94a397a

File tree

2 files changed

+120
-0
lines changed

2 files changed

+120
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/usr/bin/perl
2+
use strict;
3+
use warnings;
4+
use Test::More;
5+
6+
use FindBin;
7+
use lib "$FindBin::Bin/../../../lib";
8+
9+
use CellBIS::SQL::Abstract;
10+
11+
my $sql_abstract = CellBIS::SQL::Abstract->new(db_type => 'sqlite');
12+
my $create_table = '';
13+
my $to_compare =
14+
'CREATE TABLE IF NOT EXISTS company( ' .
15+
'id_company INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, ' .
16+
'id_company_users INTEGER NOT NULL, ' .
17+
'company_name VARCHAR NOT NULL, ' .
18+
'CONSTRAINT user_company_fk FOREIGN KEY (id_company_users) REFERENCES users (id) ' .
19+
'ON DELETE CASCADE ON UPDATE CASCADE )';
20+
21+
my $table_name = 'company';
22+
my $col_list = [
23+
'id_company',
24+
'id_company_users',
25+
'company_name',
26+
];
27+
my $col_attr = {
28+
'id_company' => {
29+
type => { name => 'integer' },
30+
is_primarykey => 1,
31+
is_autoincre => 1,
32+
},
33+
'id_company_users' => {
34+
type => { name => 'integer' },
35+
is_null => 0,
36+
},
37+
'company_name' => {
38+
type => {
39+
name => 'varchar',
40+
size => '200',
41+
},
42+
is_null => 0,
43+
}
44+
};
45+
my $table_attr = {
46+
fk => {
47+
name => 'user_company_fk',
48+
col_name => 'id_company_users',
49+
table_target => 'users',
50+
col_target => 'id',
51+
attr => {
52+
onupdate => 'cascade',
53+
ondelete => 'cascade'
54+
}
55+
}
56+
};
57+
$create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
58+
my $on_liner = $sql_abstract->to_one_liner($create_table);
59+
60+
is($on_liner, $to_compare, "Query Table has created : \n$create_table\n");
61+
62+
done_testing();
63+
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/perl
2+
use strict;
3+
use warnings;
4+
use Test::More;
5+
6+
use FindBin;
7+
use lib "$FindBin::Bin/../../../lib";
8+
9+
use CellBIS::SQL::Abstract;
10+
11+
my $sql_abstract = CellBIS::SQL::Abstract->new(db_type => 'sqlite');
12+
my $create_table = '';
13+
my $to_compare = 'CREATE TABLE IF NOT EXISTS users( '.
14+
'id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, '.
15+
'first_name VARCHAR NOT NULL, '.
16+
'last_name VARCHAR NOT NULL, '.
17+
'other_col_name VARCHAR NOT NULL )';
18+
19+
my $table_name = 'users';
20+
my $col_list = [ 'id', 'first_name', 'last_name', 'other_col_name' ];
21+
my $col_attr = {
22+
'id' => {
23+
type => { name => 'integer' },
24+
is_primarykey => 1,
25+
is_autoincre => 1,
26+
},
27+
'first_name' => {
28+
type => {
29+
name => 'varchar',
30+
size => 50,
31+
},
32+
is_null => 0,
33+
},
34+
'last_name' => {
35+
type => {
36+
name => 'varchar',
37+
size => 50,
38+
},
39+
is_null => 0,
40+
},
41+
'other_col_name' => {
42+
type => {
43+
name => 'varchar',
44+
size => 60,
45+
},
46+
is_null => 0,
47+
}
48+
};
49+
my $table_attr = {
50+
engine => 'innodb',
51+
};
52+
$create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
53+
my $on_liner = $sql_abstract->to_one_liner($create_table);
54+
55+
is($on_liner, $to_compare, "Query Table has created : \n$create_table\n");
56+
57+
done_testing();

0 commit comments

Comments
 (0)