The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
#   $Id: 210-check-versions.t,v 1.2 2009/06/23 19:54:29 aff Exp $

use warnings;
use strict;

use Data::Dumper;
use Test::More;
use Test::Exception;
use File::Spec::Functions;
use lib catdir qw ( blib lib );

plan tests => 15;

use_ok ('Parse::Dia::SQL::Utils');

my $pds = Parse::Dia::SQL::Utils->new();
isa_ok($pds, q{Parse::Dia::SQL::Utils}, q{Expect a Parse::Dia::SQL::Utils object});

# negative tests
ok(!defined $pds->_check_object_version('foo', 0), q{unknown object type});
ok(!defined $pds->_check_object_version('', 0), q{missing object type});

# positive tests
ok(defined $pds->_check_object_version('UML - Association', '01'), q{UML - Association 01});
ok(defined $pds->_check_object_version('UML - Association', '02'), q{UML - Association 02});

ok(defined $pds->_check_object_version('UML - Class', 0), q{UML - Class 0});
ok(defined $pds->_check_object_version('UML - Component', 0), q{UML - Component 0});
ok(defined $pds->_check_object_version('UML - Note', 0), q{UML - Note 0});
ok(defined $pds->_check_object_version('UML - SmallPackage', 0), q{UML - SmallPackage 0});

# negative tests - unsupported verions
ok(!defined $pds->_check_object_version('UML - Association', 3), q{UML - Association 3});

ok(!defined $pds->_check_object_version('UML - Class', 1), q{UML - Class 1});
ok(!defined $pds->_check_object_version('UML - Component', 1), q{UML - Component 1});
ok(!defined $pds->_check_object_version('UML - Note', 1), q{UML - Note 1});
ok(!defined $pds->_check_object_version('UML - SmallPackage', 1), q{UML - SmallPackage 1});


__END__

=pod

=head1 Test of XML object versions.

List of supported object versions

    <dia:object type="UML - Association"  version="1" id="XX">
    <dia:object type="UML - Association"  version="2" id="XX">
    <dia:object type="UML - Class"        version="0" id="XX">
    <dia:object type="UML - Component"    version="0" id="XX">
    <dia:object type="UML - Note"         version="0" id="XX">
    <dia:object type="UML - SmallPackage" version="0" id="XX">

=cut