#!/usr/bin/perl
BEGIN {
maybe_plan(31,
'SQL::Translator::Parser::Excel'
);
SQL::Translator::Parser::Excel->
import
(
'parse'
);
}
my
$tr
= SQL::Translator->new(
parser
=>
"Excel"
);
my
$t
=
$tr
->translate(
filename
=>
"t/data/Excel/t.xls"
);
my
$schema
=
$tr
->schema;
my
@tables
=
$schema
->get_tables;
is(
scalar
@tables
, 1,
'Parsed 1 table'
);
my
$table
=
shift
@tables
;
is(
$table
->name,
'Sheet1'
,
'Table name is "Sheet1"'
);
my
@fields
=
$table
->get_fields;
is(
scalar
@fields
, 7,
'Table has 7 fields'
);
my
$f1
=
shift
@fields
;
is(
$f1
->name,
'ID'
,
'First field name is "ID"'
);
is(
lc
$f1
->data_type,
'integer'
,
'Data type is "integer"'
);
is(
$f1
->size, 5,
'Size is "5"'
);
is(
$f1
->is_primary_key, 1,
'Field is PK'
);
my
$f2
=
shift
@fields
;
is(
$f2
->name,
'text'
,
'Second field name is "text"'
);
is(
lc
$f2
->data_type,
'char'
,
'Data type is "char"'
);
is(
$f2
->size, 7,
'Size is "7"'
);
is(
$f2
->is_primary_key, 0,
'Field is not PK'
);
my
$f3
=
shift
@fields
;
is(
$f3
->name,
'number'
,
'Third field name is "number"'
);
is(
lc
$f3
->data_type,
'integer'
,
'Data type is "integer"'
);
is(
$f3
->size, 1,
'Size is "1"'
);
is(
$f3
->is_primary_key, 0,
'Field is not PK'
);
my
$f4
=
shift
@fields
;
TODO: {
todo_skip
if
(
$Spreadsheet::ParseExcel::VERSION
> 0.32
and
$Spreadsheet::ParseExcel::VERSION
< 0.41);
is(
$f4
->name,
'math'
,
'Fourth field name is "math"'
);
is(
lc
$f4
->data_type,
'float'
,
'Data type is "float"'
);
is(
$f4
->size,
'3,1'
,
'Size is "3,1"'
);
is(
$f4
->is_primary_key, 0,
'Field is not PK'
);
}
my
$f5
=
shift
@fields
;
is(
$f5
->name,
'bitmap'
,
'Fifth field name is "bitmap"'
);
is(
lc
$f5
->data_type,
'char'
,
'Data type is "char"'
);
is(
$f5
->size, 1,
'Size is "1"'
);
is(
$f5
->is_primary_key, 0,
'Field is not PK'
);
my
$f6
=
shift
@fields
;
is(
$f6
->name,
'today'
,
'Sixth field name is "today"'
);
is(
lc
$f6
->data_type,
'char'
,
'Data type is "CHAR"'
);
is(
$f6
->size, 10,
'Size is "10"'
);
is(
$f6
->is_primary_key, 0,
'Field is not PK'
);
my
$f7
=
shift
@fields
;
is(
$f7
->name,
'silly_field_with_random_characters'
,
'Seventh field name is "silly_field_with_random_characters"'
);
is(
lc
$f7
->data_type,
'char'
,
'Data type is "CHAR"'
);
is(
$f7
->size, 11,
'Size is "11"'
);
is(
$f7
->is_primary_key, 0,
'Field is not PK'
);