The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl IDspace.t'

#########################

BEGIN {
    eval { require Test; };
    use Test;    
    plan tests => 16;
}

#########################

use OBO::Core::IDspace;
use strict;

# three new IDspace's
my $ref1 = OBO::Core::IDspace->new();
my $ref2 = OBO::Core::IDspace->new();
my $ref3 = OBO::Core::IDspace->new();

$ref1->local_idspace('APO');
$ref1->uri('http://www.cellcycle.org/ontology/APO');
$ref1->description('cell cycle ontology terms');

ok($ref1->local_idspace() eq 'APO');
ok($ref1->uri() eq 'http://www.cellcycle.org/ontology/APO');
ok($ref1->description() eq 'cell cycle ontology terms');

$ref2->local_idspace('APO');
$ref2->uri('http://www.cellcycle.org/ontology/APO');
$ref2->description('cell cycle ontology terms');

ok($ref2->local_idspace() eq 'APO');
ok($ref2->uri() eq 'http://www.cellcycle.org/ontology/APO');
ok($ref2->description() eq 'cell cycle ontology terms');

ok(!$ref2->equals($ref3));
ok(!$ref1->equals($ref3));
ok($ref1->equals($ref2));
ok($ref1->equals($ref1));
ok($ref2->equals($ref2));

$ref3 = $ref2;
ok($ref3->equals($ref1));
ok($ref3->equals($ref2));
ok($ref3->as_string() eq 'APO http://www.cellcycle.org/ontology/APO "cell cycle ontology terms"');

my $ref4 = OBO::Core::IDspace->new();
ok($ref4->as_string() eq '');

ok(1);