The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl -w

# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl t/lch.t'

# A script to test whether 
#  1. UMLS-Interface can be loaded
#  2. DBI can access the umls database in mysql
#  3. Information (Table names) can be accessed 
#  4. MRREL table exists 
#  5. MRCONSO table exists
#  6. MRSAB table exists
#  7. MRDOC table exists
#  8. MRDOC table can be accessed


BEGIN { $| = 1; print "1..8\n"; }
END {print "not ok 1\n" unless $loaded;}

use UMLS::Interface;
$loaded = 1;
print "ok 1\n";

use strict;
use warnings;

my $dsn = "DBI:mysql:umls;mysql_read_default_group=client;";
my $db = DBI->connect($dsn);

if(!$db || $db->err()) {
    print "not ok 2\n";
} else { print "ok 2\n"; }


my %tables = (); my $tableName = "";
my $sth = $db->prepare("show tables");
$sth->execute();
if($sth->err()) {
    print "not ok 3\n";
}
else {
    print "ok 3\n";
}

while(($tableName) = $sth->fetchrow()) {
    $tables{$tableName} = 1;
} $sth->finish();

# Check if MRREL exists
if(!defined $tables{"MRREL"}) {
    print "not ok 4\n";
}  
else {
    print "ok 4\n";
}

# Check if MRCONSO exists
if(!defined $tables{"MRCONSO"}) {
    print "not ok 5\n";
}
else {
    print "ok 5\n";
}

# Check if MRSAB exists
if(!defined $tables{"MRSAB"}) {
    print "not ok 6\n";
}
else {
    print "ok 6\n";
}

# Check if MDOC exists
if(!defined $tables{"MRDOC"}) {
    print "not ok 7\n";
}
else {
    print "ok 7\n";
}

#  Get version from the MRDOC table
my $arrRef = $db->selectcol_arrayref("select EXPL from MRDOC where VALUE = \'mmsys.version\'");
if($db->err()) {
    print "not ok 8\n";
}
else {
    print "ok 8\n";
}