Blame t/schema.t

Packit d27c7e
# Hey Emacs, this is -*- perl -*- !
Packit d27c7e
#
Packit d27c7e
# Before `make install' is performed this script should be runnable with
Packit d27c7e
# `make test'. After `make install' it should work as `perl test.pl'
Packit d27c7e
#
Packit d27c7e
# $Id: schema.t,v 1.1 1999/08/10 21:42:39 kmacleod Exp $
Packit d27c7e
#
Packit d27c7e
Packit d27c7e
######################### We start with some black magic to print on failure.
Packit d27c7e
Packit d27c7e
# Change 1..1 below to 1..last_test_to_print .
Packit d27c7e
# (It may become useful if the test is moved to ./t subdirectory.)
Packit d27c7e
Packit d27c7e
BEGIN { $| = 1; print "1..2\n"; }
Packit d27c7e
END {print "not ok 1\n" unless $loaded;}
Packit d27c7e
use XML::Parser::PerlSAX;
Packit d27c7e
use XML::PatAct::MatchName;
Packit d27c7e
use XML::PatAct::ToObjects;
Packit d27c7e
Packit d27c7e
$loaded = 1;
Packit d27c7e
print "ok 1\n";
Packit d27c7e
Packit d27c7e
my $patterns = [
Packit d27c7e
      'schema'      => [ qw{ -holder                                  } ],
Packit d27c7e
      'table'       => [ qw{ -make Schema::Table                      } ],
Packit d27c7e
      'name'        => [ qw{ -field Name -as-string                   } ],
Packit d27c7e
      'summary'     => [ qw{ -field Summary -as-string                } ],
Packit d27c7e
      'description' => [ qw{ -field Description -as-string            } ],
Packit d27c7e
      'column'      => [ qw{ -make Schema::Column -push-field Columns } ],
Packit d27c7e
      'unique'      => [ qw{ -field Unique -value 1                   } ],
Packit d27c7e
      'non-null'    => [ qw{ -field NonNull -value 1                  } ],
Packit d27c7e
      'default'     => [ qw{ -field Default -as-string                } ],
Packit d27c7e
		];
Packit d27c7e
Packit d27c7e
my $matcher = XML::PatAct::MatchName->new( Patterns => $patterns );
Packit d27c7e
my $handler = XML::PatAct::ToObjects->new( Patterns => $patterns,
Packit d27c7e
					   Matcher => $matcher);
Packit d27c7e
Packit d27c7e
my $parser = XML::Parser::PerlSAX->new( Handler => $handler );
Packit d27c7e
$schema = $parser->parse(Source => { String => <<'EOF' } );
Packit d27c7e
    <schema>
Packit d27c7e
      
Packit d27c7e
        <name>MyTable</name>
Packit d27c7e
        <summary>A short summary</summary>
Packit d27c7e
        <description>A long description that may
Packit d27c7e
          contain a subset of HTML</description>
Packit d27c7e
        <column>
Packit d27c7e
          <name>MyColumn1</name>
Packit d27c7e
          <summary>A short summary</summary>
Packit d27c7e
          <description>A long description</description>
Packit d27c7e
          <unique/>
Packit d27c7e
          <non-null/>
Packit d27c7e
          <default>42</default>
Packit d27c7e
        </column>
Packit d27c7e
      
Packit d27c7e
    </schema>
Packit d27c7e
EOF
Packit d27c7e
Packit d27c7e
$not_ok = 0;
Packit d27c7e
$not_ok |= (!defined($schema)) || (ref($schema->[0]) ne 'Schema::Table');
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Name})) || ($schema->[0]{Name} ne 'MyTable');
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Summary}))
Packit d27c7e
    || ($schema->[0]{Summary} ne 'A short summary');
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Description}));
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Columns}))
Packit d27c7e
    || (ref($schema->[0]{Columns}[0]) ne 'Schema::Column');
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Columns}[0]{Name}))
Packit d27c7e
    || ($schema->[0]{Columns}[0]{Name} ne 'MyColumn1');
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Columns}[0]{Summary}))
Packit d27c7e
    || ($schema->[0]{Columns}[0]{Summary} ne 'A short summary');
Packit d27c7e
$not_ok |= !defined($schema->[0]{Columns}[0]{Description});
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Columns}[0]{Unique}))
Packit d27c7e
    || ($schema->[0]{Columns}[0]{Unique} != 1);
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Columns}[0]{NonNull}))
Packit d27c7e
    || ($schema->[0]{Columns}[0]{NonNull} != 1);
Packit d27c7e
$not_ok |= (!defined($schema->[0]{Columns}[0]{Default}))
Packit d27c7e
    || ($schema->[0]{Columns}[0]{Default} != 42);
Packit d27c7e
Packit d27c7e
print $not_ok ? "not ok 2\n" : "ok 2\n";