File Coverage

Bio/Root/TestObject.pm
Criterion Covered Total %
statement 15 16 93.7
branch 4 10 40.0
condition 1 3 33.3
subroutine 4 4 100.0
pod 0 2 0.0
total 24 35 68.5


line stmt bran cond sub pod time code
1             =head1 NAME
2              
3             TestObject - An implementation of TestInterface
4              
5             =head1 DESCRIPTION
6              
7             This module attempts to provide an implementation of TestInterface and
8             is used for illustrating exception throwing using Graham Barr's
9             Error.pm object.
10              
11             =head1 AUTHOR
12              
13             Steve Chervitz Esac@bioperl.orgE
14              
15             =cut
16              
17             package Bio::Root::TestObject;
18              
19 1     1   412 use strict;
  1         1  
  1         36  
20              
21             # Define a special type of error "Bio::TestException" as a subclass of Error.
22             # Note two things:
23             # 1. The ISA declaration effectively defines our new Exception object.
24             # 2. This declaration doesn't have to be located in the Bio directory.
25             # 3. We don't have to use Bio::Root::Exception in this module.
26             # 4. If Error.pm isn't available this statement doesn't matter.
27             @Bio::TestException::ISA = qw( Bio::Root::Exception );
28              
29 1     1   3 use base qw( Bio::Root::Root );
  1         1  
  1         276  
30              
31             # Note that we're not implementing foo(), so calling it
32             # will result in a Bio::Root::NotImplemented exception.
33              
34             sub data {
35 1     1 0 2 my ($self, $data) = @_;
36 1 50 33     5 print "Setting test data ($data)\n" if $data && $self->verbose;
37 1 50       4 $self->{'data'} = $data if $data;
38              
39 1         3 return $self->{'data'}
40             }
41              
42             sub bar {
43              
44 1     1 0 179 my $self = shift;
45              
46 1 50       6 print "\nExecuting method bar() in TestObject\n" if $self->verbose;
47 1 50       3 print "Throwing a Bio::TestException\n" if $self->verbose;
48              
49 1         2 my $message = "A Test error";
50              
51             # Bio::Root::Root::throw() will make use of Error.pm if present.
52             # The type of Error is specified with a -class parameter.
53             # If -class is not supplied, a Bio::Root::Exception is throw.
54             # In this case, the argument can consist of a simple string.
55              
56 1         6 $self->throw( -class => 'Bio::TestException',
57             -text => $message );
58              
59 0 0         print "Code within bar() below the throw that shouldn't be executed.\n" if $self->verbose;
60              
61             }
62              
63             1;