diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2012-05-08 18:20:12 +0000 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-10-03 12:23:37 +0000 |
commit | 661707e7bd4282aeab5a2f6a8f02ca5731fd813f (patch) | |
tree | 9b32ff910278233ad929888499ca8380f2696582 /t/06customize-text-throw.t | |
download | error-perl-tarball-661707e7bd4282aeab5a2f6a8f02ca5731fd813f.tar.gz |
Imported from /srv/lorry/lorry-area/error-perl-tarball/Error-0.17018.tar.gz.baserock/morph
Diffstat (limited to 't/06customize-text-throw.t')
-rw-r--r-- | t/06customize-text-throw.t | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/t/06customize-text-throw.t b/t/06customize-text-throw.t new file mode 100644 index 0000000..26eb523 --- /dev/null +++ b/t/06customize-text-throw.t @@ -0,0 +1,66 @@ +#!/usr/bin/perl -w + +use strict; + +use Test::More tests => 3; + +use Error qw(:try); + +package MyError::Foo; + +use vars qw(@ISA); + +@ISA=qw(Error); + +package MyError::Bar; + +use vars qw(@ISA); + +@ISA=qw(Error); + +package main; + +{ + eval + { + try + { + die "Hello"; + } + catch MyError::Foo with { + }; + }; + + my $err = $@; + + # TEST + ok($err->isa("Error::Simple"), "Error was auto-converted to Error::Simple"); +} + +sub throw_MyError_Bar +{ + my $args = shift; + my $err = MyError::Bar->new(); + $err->{'MyBarText'} = $args->{'text'}; + return $err; +} + +{ + local $Error::ObjectifyCallback = \&throw_MyError_Bar; + eval + { + try + { + die "Hello\n"; + } + catch MyError::Foo with { + }; + }; + + my $err = $@; + + # TEST + ok ($err->isa("MyError::Bar"), "Error was auto-converted to MyError::Bar"); + # TEST + is ($err->{'MyBarText'}, "Hello\n", "Text of the error is correct"); +} |