Remove manipulation of @INC and use of lib - require install for use.
[bioperl-live.git] / t / Root / Exception.t
blob4790e8abe56a92dbbbfe8e1ff132805364f6fea2
1 # -*-Perl-*- Test Harness script for Bioperl
3 use strict;
5 BEGIN {
6     eval {require Error;};
8     use Bio::Root::Test;
10     test_begin(-tests => 7,
11                -requires_module => 'Error');
13     use_ok('Bio::Root::TestObject');
16 use Error qw(:try);
17 $Error::Debug = test_debug();
19 # Set up a tester object.
20 ok my $test = Bio::Root::TestObject->new(-verbose => test_debug());
22 is $test->data('Eeny meeny miney moe.'), 'Eeny meeny miney moe.';
24 # This demonstrates what will happen if a method defined in an
25 # interface that is not implemented in the implementating object.
27 eval {
28     try {
29         $test->foo();
30     }
31     catch Bio::Root::NotImplemented with {
32         my $err = shift;
33         is ref $err, 'Bio::Root::NotImplemented';
34     };
37 # TestObject::bar() deliberately throws a Bio::TestException,
38 # which is defined in TestObject.pm
39 try {
40     $test->bar;
42 catch Bio::TestException with {
43     my $err = shift;
44     is ref $err, 'Bio::TestException';
48 # Use the non-object-oriented syntax to throw a generic Bio::Root::Exception.
49 try {
50     throw Bio::Root::Exception( "A generic error", 42 );
52 catch Bio::Root::Exception with {
53     my $err = shift;
54     is ref $err, 'Bio::Root::Exception';
55     is $err->value, 42;
58 # Try to call a subroutine that doesn't exist. But because it occurs
59 # within a try block, the Error module will create a Error::Simple to
60 # capture it. Handy eh?
62 try {
63     $test->foobar();
65 otherwise {
66     my $err = shift;
67     is ref $err, 'Error::Simple';