#!/usr/bin/perl # vim: set ft=perl: # use strict; use FindBin '$Bin'; use Test::More 'no_plan'; use SQL::Translator; use SQL::Translator::Schema::Constants; use Test::SQL::Translator qw(maybe_plan table_ok); #BEGIN { # maybe_plan(180, "SQL::Translator::Parser::Access"); # SQL::Translator::Parser::Access->import('parse'); #} use SQL::Translator::Parser::Access 'parse'; { my $tr = SQL::Translator->new; my $file = "$Bin/data/access/gdpdm.ddl"; open FH, "<$file" or die "Can't read '$file': $!\n"; local $/; my $data = ; close FH; my $val = parse($tr, $data); ok( $val, 'Parsed OK' ); my $schema = $tr->schema; is( $schema->is_valid, 1, 'Schema is valid' ); my @tables = $schema->get_tables; is( scalar @tables, 24, 'Right number of tables (24)' ); my @tblnames = map {$_->name} @tables; is_deeply( \@tblnames, [qw/div_aa_annotation div_allele div_allele_assay div_annotation_type div_exp_entry div_experiment div_generation div_locality div_locus div_marker div_obs_unit div_obs_unit_sample div_passport div_poly_type div_statistic_type div_stock div_stock_parent div_trait div_trait_uom div_treatment div_treatment_uom div_unit_of_measure qtl_trait_ontology qtl_treatment_ontology/] ,"tables"); table_ok( $schema->get_table("div_aa_annotation"), { name => "div_aa_annotation", fields => [ { name => "div_aa_annotation_id", data_type => "Long Integer", size => 4, }, { name => "div_annotation_type_id", data_type => "Long Integer", size => 4, }, { name => "div_allele_assay_id", data_type => "Long Integer", size => 4, }, { name => "annotation_value", data_type => "Text", size => 50, }, ], }); table_ok( $schema->get_table("div_allele"), { name => "div_allele", fields => [ { name => "div_allele_id", data_type => "Long Integer", size => 4, }, { name => "div_obs_unit_sample_id", data_type => "Long Integer", size => 4, }, { name => "div_allele_assay_id", data_type => "Long Integer", size => 4, }, { name => "allele_num", data_type => "Long Integer", size => 4, }, { name => "quality", data_type => "Long Integer", size => 4, }, { name => "value", data_type => "Text", size => 50, }, ], }); }