#!/usr/bin/perl -w
# The LearningOnline Network with CAPA
#
# $Id: lonmetadata_test.pl,v 1.2 2004/01/12 21:48:38 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
######################################################################
use strict;
use DBI;
use LONCAPA::lonmetadata();
use Test::Simple tests => 4;
ok(&create_test_db(),'database creation');
ok(&test_creation(),'table creation');
ok(&test_named_creation(),'named table creation');
ok(&test_inserts(),'insert test');
exit;
#####################################################################
#####################################################################
##
## Tests live down below
##
#####################################################################
#####################################################################
##
## Note: The root password to my MySQL server is shown below.
## Access is only allowed from localhost so it should be okay.
## Now if you will excuse me I have to change the password on my luggage.
##
my $supersecretpassword = '123'; # shhhh
sub create_test_db {
my $dbh = DBI->connect("DBI:mysql:test","root",$supersecretpassword,
{ RaiseError =>0,PrintError=>0});
if (! defined($dbh)) {
return 0;
}
my $request = 'DROP DATABASE IF EXISTS lonmetatest';
$dbh->do($request);
$request = 'CREATE DATABASE lonmetatest';
$dbh->do($request);
if ($dbh->err) {
return 0;
} else {
return 1;
}
$dbh->disconnect();
}
sub test_creation {
my $dbh = DBI->connect("DBI:mysql:lonmetatest","root",$supersecretpassword,
{ RaiseError =>0,PrintError=>0});
my $request = &LONCAPA::lonmetadata::create_metadata_storage();
$dbh->do($request);
if ($dbh->err) {
$dbh->disconnect();
return 0;
} else {
$dbh->disconnect();
return 1;
}
}
sub test_named_creation {
my $request =
&LONCAPA::lonmetadata::create_metadata_storage('nonmetadata');
my $dbh = DBI->connect("DBI:mysql:lonmetatest","root",$supersecretpassword,
{ RaiseError =>0,PrintError=>0});
$dbh->do($request); # Create the table, only return 0 if we cannot.
if ($dbh->err) {
$dbh->disconnect();
return 0;
}
$dbh->do('DROP TABLE nonmetadata'); # This will generate an error if the
# table does not exist
if ($dbh->err) {
$dbh->disconnect();
return 0;
} else {
$dbh->disconnect();
return 1;
}
}
sub test_inserts {
my $dbh = DBI->connect("DBI:mysql:lonmetatest","root",$supersecretpassword,
{ RaiseError =>0,PrintError=>0});
my @TestRecords = (
{ url => 'm/b/h/test1' },
{ title => 'test document 1',
author => 'matthew',
subject => 'subject 1',
url => 'm/b/h/test2',
keywords => 'key word',
version => '1.4',
notes => 'note note note',
abstract => 'probably',
mime => 'none',
language => 'english',
creationdate =>'',
lastrevisiondate =>'',
owner => 'hallmat3',
copyright => 'default',
dependencies => undef,
modifyinguser => 'hallmat3',
authorspace => 'hallmat3',
lowestgradelevel =>'1',
highestgradelevel => 16,
standards => 'Delaware Required Instruction Program',
count => '2544444',
course => '4',
course_list => 'course 1, course 2, course 3, course 4',
goto => '1',
goto_list =>'m/b/h/test1',
comefrom => '0',
comefrom_list =>'',
sequsage => '1',
sequsage_list =>'mbhtest.sequence',
stdno => '0',
stdno_list => '',
avetries => '0.0',
avetries_list =>'',
difficulty =>'',
difficulty_list => '',
clear => '5',
technical => '4',
correct => '3',
helpful => '2',
depth => '5',
hostname =>'6',
},
);
foreach my $data (@TestRecords) {
my ($count,$error) = &LONCAPA::lonmetadata::store_metadata($dbh,$data);
if (! $count) {
warn $error;
return 0;
}
}
return 1;
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>