@@ -, +, @@ --- t/Koha/Exceptions.t | 49 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) --- a/t/Koha/Exceptions.t +++ a/t/Koha/Exceptions.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 9; +use Test::More tests => 10; use Test::MockObject; use Test::Exception; @@ -336,3 +336,50 @@ subtest 'Koha::Exceptions::Plugin tests' => sub { # stringify the exception is( "$@", "Calling 'upgrade' died for plugin $plugin_class", 'Exception stringified correctly' ); }; + +subtest 'Koha::Exception tests' => sub { + + plan tests => 6; + + use Koha::Exception; + + use Exception::Class ( + 'Koha::Exceptions::Weird' => { + isa => 'Koha::Exception', + description => 'Weird exception!', + fields => [ 'a', 'b' ] + } + ); + + my $exception_message = "This is a message"; + + throws_ok + { Koha::Exceptions::Weird->throw( $exception_message ) } + 'Koha::Exception', + 'Exception is thrown :-D'; + + is( "$@", $exception_message, 'Exception not stringified if manually passed' ); + + + throws_ok + { Koha::Exceptions::Weird->throw( a => "A", b => "B" ) } + 'Koha::Exception', + 'Exception is thrown :-D'; + + is( + "$@", + "Exception 'Koha::Exceptions::Weird' thrown 'Weird exception!' with a => A, b => B\n", + 'Exception stringified correctly' + ); + + throws_ok + { Koha::Exceptions::Weird->throw() } + 'Koha::Exception', + 'Exception is thrown :-D'; + + is( + "$@", + "Exception 'Koha::Exceptions::Weird' thrown 'Weird exception!'\n", + 'Exception not stringified if manually passed' + ); +}; --