# Copyright (c) 2005 Jeffrey I Cohen. All rights reserved.
#
# 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..23\n"; }
END {print "not ok 1\n" unless $loaded;}
use Genezzo::GenDBI;
$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):
use strict;
use warnings;
use File::Path;
use File::Spec;
my $TEST_COUNT;
$TEST_COUNT = 2;
my $dbinit = 1;
my $gnz_home = File::Spec->catdir("t", "gnz_home");
rmtree($gnz_home, 1, 1);
#mkpath($gnz_home, 1, 0755);
# TESTING FOR PREFERENCES, command-line definitions and file header definitions
my %fhdefs = ('a space' => 'b space',
'c c c' => 'd d d');
my %other_defs = ('foo' => 'bar',
'baz' => 'ztesch' );
{
my $fb = Genezzo::GenDBI->new(exe => $0,
gnz_home => $gnz_home,
dbinit => $dbinit,
fhdefs => \%fhdefs,
defs => \%other_defs
);
unless (defined($fb))
{
not_ok ("could not create database");
exit 1;
}
ok();
$dbinit = 0;
}
{
use Genezzo::Util;
my $fb = Genezzo::GenDBI->new(exe => $0,
gnz_home => $gnz_home,
dbinit => $dbinit);
unless (defined($fb))
{
not_ok ("could not find database");
exit 1;
}
ok();
$dbinit = 0;
if ($fb->Parseall("startup"))
{
ok();
}
else
{
not_ok ("could not startup");
}
my $dictobj = $fb->{dictobj};
while (my ($kk, $vv) = each (%other_defs))
{
print "$kk: $vv\n";
not_ok ("could not find $kk")
unless (exists($dictobj->{prefs}->{$kk}));
my $pval = $dictobj->{prefs}->{$kk};
not_ok ("$kk: mismatch - $pval not equal $vv")
unless ($vv eq $pval);
}
ok();
while (my ($kk, $vv) = each (%fhdefs))
{
print "$kk: $vv\n";
not_ok ("could not find $kk")
unless (exists($dictobj->{fileheaderinfo}->{$kk}));
my $pval = $dictobj->{fileheaderinfo}->{$kk};
not_ok ("$kk: mismatch - $pval not equal $vv")
unless ($vv eq $pval);
}
ok();
my $foo = $dictobj->DictSetFileInfo(newkey => "look at this",
newval => "what a trick");
$fhdefs{"look at this"} = "what a trick";
if ($fb->Parseall("commit"))
{
ok();
}
else
{
not_ok ("could not commit");
}
if ($fb->Parseall("shutdown"))
{
ok();
}
else
{
not_ok ("could not shutdown");
}
}
{
use Genezzo::Util;
my $fb = Genezzo::GenDBI->new(exe => $0,
gnz_home => $gnz_home,
dbinit => $dbinit);
unless (defined($fb))
{
not_ok ("could not find database");
exit 1;
}
ok();
$dbinit = 0;
if ($fb->Parseall("startup"))
{
ok();
}
else
{
not_ok ("could not startup");
}
my $dictobj = $fb->{dictobj};
while (my ($kk, $vv) = each (%fhdefs))
{
print "$kk: $vv\n";
not_ok ("could not find $kk")
unless (exists($dictobj->{fileheaderinfo}->{$kk}));
my $pval = $dictobj->{fileheaderinfo}->{$kk};
not_ok ("$kk: mismatch - $pval not equal $vv")
unless ($vv eq $pval);
}
ok();
my $foo = $dictobj->DictSetFileInfo(newkey => "look at this",
newval => "teeny");
$fhdefs{"look at this"} = "teeny";
if ($fb->Parseall("commit"))
{
ok();
}
else
{
not_ok ("could not commit");
}
if ($fb->Parseall("shutdown"))
{
ok();
}
else
{
not_ok ("could not shutdown");
}
}
{
use Genezzo::Util;
my $fb = Genezzo::GenDBI->new(exe => $0,
gnz_home => $gnz_home,
dbinit => $dbinit);
unless (defined($fb))
{
not_ok ("could not find database");
exit 1;
}
ok();
$dbinit = 0;
if ($fb->Parseall("startup"))
{
ok();
}
else
{
not_ok ("could not startup");
}
my $dictobj = $fb->{dictobj};
while (my ($kk, $vv) = each (%fhdefs))
{
print "$kk: $vv\n";
not_ok ("could not find $kk")
unless (exists($dictobj->{fileheaderinfo}->{$kk}));
my $pval = $dictobj->{fileheaderinfo}->{$kk};
not_ok ("$kk: mismatch - $pval not equal $vv")
unless ($vv eq $pval);
}
ok();
my $foo = $dictobj->DictSetFileInfo(newkey => "look at this",
newval => "monster super size me very big");
$fhdefs{"look at this"} = "monster super size me very big";
if ($fb->Parseall("commit"))
{
ok();
}
else
{
not_ok ("could not commit");
}
if ($fb->Parseall("shutdown"))
{
ok();
}
else
{
not_ok ("could not shutdown");
}
}
{
use Genezzo::Util;
my $fb = Genezzo::GenDBI->new(exe => $0,
gnz_home => $gnz_home,
dbinit => $dbinit);
unless (defined($fb))
{
not_ok ("could not find database");
exit 1;
}
ok();
$dbinit = 0;
if ($fb->Parseall("startup"))
{
ok();
}
else
{
not_ok ("could not startup");
}
my $dictobj = $fb->{dictobj};
while (my ($kk, $vv) = each (%fhdefs))
{
print "$kk: $vv\n";
not_ok ("could not find $kk")
unless (exists($dictobj->{fileheaderinfo}->{$kk}));
my $pval = $dictobj->{fileheaderinfo}->{$kk};
not_ok ("$kk: mismatch - $pval not equal $vv")
unless ($vv eq $pval);
}
ok();
if ($fb->Parseall("commit"))
{
ok();
}
else
{
not_ok ("could not commit");
}
if ($fb->Parseall("shutdown"))
{
ok();
}
else
{
not_ok ("could not shutdown");
}
}
sub ok
{
print "ok $TEST_COUNT\n";
$TEST_COUNT++;
}
sub not_ok
{
my ( $message ) = @_;
print "not ok $TEST_COUNT # $message\n";
$TEST_COUNT++;
}
sub skip
{
my ( $message ) = @_;
print "ok $TEST_COUNT # skipped: $message\n";
$TEST_COUNT++;
}