#
# '$RCSfile$'
# Copyright: 2000 Regents of the University of California
#
# '$Author: leinfelder $'
# '$Date: 2015-07-09 00:01:42 +0000 (Thu, 09 Jul 2015) $'
# '$Revision: 9234 $'
#
# This program 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.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
######################### We start with some black magic to print on failure.
# Change 1..1 below to 1..last_test_to_print .
# (It may become useful if the test is moved to ./t subdirectory.)
BEGIN { $| = 1; print "1..1\n"; }
END {print "not ok 1\n" unless $loaded;}
use Metacat;
$loaded = 1;
print "ok 1\n";
######################### End of black magic.
# Insert your test code below (better if it prints "ok 13"
# (correspondingly "not ok 13") depending on the success of chunk 13
# of the test code):
my $metacatUrl = "https://dev.nceas.ucsb.edu/knb/metacat";
my $username = 'uid=kepler,o=unaffiliated,dc=ecoinformatics,dc=org';
my $password = 'kepler';
# Set up a date stamp
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
if ($min < 10) {
$minstr = "0".$min;
} else {
$minstr = $min;
}
if ($sec < 10) {
$secstr = "0".$sec;
} else {
$secstr = $sec;
}
my $thismon=(Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)[$mon];
my $timenow="$mday-$thismon-$year $hour:$minstr:$secstr";
# Set up a document accession number to use
my $scope = "$thismon$mday";
my $docroot = "$scope.$minstr.";
my $docrev = 1;
# Chunk 2: Test metacat object creation
my $metacat = Metacat->new();
if ($metacat) {
$metacat->set_options( metacatUrl => $metacatUrl );
print "ok 2 metacat creation\n";
} else {
print "not ok 2 metacat creation\n";
}
# Chunk 3: Test metacat login
my $response = $metacat->login($username, $password);
if ($response) {
print "ok 3 login\n";
} else {
print $metacat->getMessage();
print "not ok 3 login\n";
}
# Chunk 4: Test metacat insert
my $xmldoc = "Scream";
my $response = $metacat->insert($docroot . $docrev, $xmldoc);
if ($response) {
print "ok 4 insert\n";
} else {
print $metacat->getMessage();
print "not ok 4 insert\n";
}
# Chunk 5: Test metacat update
$xmldoc = "Scream 2";
$docrev++;
my $response = $metacat->update("$docroot" . "$docrev", $xmldoc);
if ($response) {
print "ok 5 update\n";
} else {
print $metacat->getMessage();
print "not ok 5 update\n";
}
# Chunk 6: Test metacat read
my $response = $metacat->read("$docroot" . "$docrev");
if ($response) {
print "ok 6 read\n";
} else {
print $metacat->getMessage();
print "not ok 6 read\n";
}
# Chunk 7: Test metacat squery
my $pathquery = "Scream";
my $response = $metacat->squery($pathquery);
if ($response) {
print "ok 7 squery\n";
} else {
print $metacat->getMessage();
print "not ok 7 squery\n";
}
# Chunk 8: Test metacat delete
my $response = $metacat->delete("$docroot" . "$docrev");
if ($response) {
print "ok 8 delete\n";
} else {
print $metacat->getMessage();
print "not ok 8 delete\n";
}
# Chunk 9: Test metacat getlastid
my $response = $metacat->getLastId("$scope");
if ($response) {
print "ok 9 getlastid ($response)\n";
} else {
print $metacat->getMessage();
print "not ok 9 getlastid\n";
}
# Chunk 10: Test metacat logout
my $response = $metacat->logout($username, $password);
if ($response) {
print "ok 10 logout\n";
} else {
print $metacat->getMessage();
print "not ok 10 logout\n";
}