#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
use Test::More tests => 6;
# File : GO-Node.t
# Author : Gavin Sherlock
# Date Begun : March 9th 2002
# $Id: GO-Node.t,v 1.4 2007/05/02 16:26:12 sherlock Exp $
# This file forms a set of tests for the GO::Node class
use GO::Node;
my $goid = "GO:0008150";
my $term = "biological_process";
my $node = GO::Node->new(goid => $goid,
term => $term);
# check that we're the right kind of object
isa_ok($node, "GO::Node");
# check the object implements all the methods in the API
my @methods = qw(addChildNodes addParentNodes addPathToRoot goid term
childNodes parentNodes pathsToRoot pathsToAncestor
ancestors lengthOfLongestPathToRoot
lengthOfShortestPathToRoot meanLengthOfPathsToRoot
isValid isAParentOf isAChildOf isAnAncestorOf
isADescendantOf isLeaf isRoot);
can_ok($node, @methods);
# now check attribute values
is($node->goid, $goid);
is($node->term, $term);
# now check we get an appropriate error thrown if we miss out a
# required argument
# leave out term
eval {
$node = GO::Node->new(goid => $goid);
};
like($@, qr/did not provide a value for the 'term' argument/);
# leave out goid
eval {
$node = GO::Node->new(term => $term);
};
like($@, qr/did not provide a value for the 'goid' argument/);