From fc014eb5be388926cd011eec3debe011a26ce51c Mon Sep 17 00:00:00 2001 From: Josef Moravec Date: Mon, 5 Jun 2017 11:55:12 +0200 Subject: [PATCH] Bug 18720: Use exception instead of die in GetBasketAsCsv Test plan: prove t/db_dependent/Acquisition/GetBasketAsCSV.t Signed-off-by: Andrew Isherwood Signed-off-by: Katrin Fischer Signed-off-by: Nick Clemens (cherry picked from commit 77ea4686395f88c9678c611a78e6db4fd4c04101) Signed-off-by: Martin Renvoize (cherry picked from commit 1ee7a438b2dc18e2a202795bb4203b58a0c36674) Signed-off-by: Fridolin Somers --- C4/Acquisition.pm | 3 ++- t/db_dependent/Acquisition/GetBasketAsCSV.t | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index 15a51dd81b..5c4219e493 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -31,6 +31,7 @@ use Koha::DateUtils qw( dt_from_string output_pref ); use Koha::Acquisition::Booksellers; use Koha::Acquisition::Orders; use Koha::Biblios; +use Koha::Exceptions; use Koha::Items; use Koha::Number::Price; use Koha::Libraries; @@ -293,7 +294,7 @@ sub GetBasketAsCSV { my @rows; if ($csv_profile_id) { my $csv_profile = Koha::CsvProfiles->find( $csv_profile_id ); - die "There is no valid csv profile given" unless $csv_profile; + Koha::Exceptions::ObjectNotFound->throw( 'There is no valid csv profile given') unless $csv_profile; my $csv = Text::CSV_XS->new({'quote_char'=>'"','escape_char'=>'"','sep_char'=>$csv_profile->csv_separator,'binary'=>1}); my $csv_profile_content = $csv_profile->content; diff --git a/t/db_dependent/Acquisition/GetBasketAsCSV.t b/t/db_dependent/Acquisition/GetBasketAsCSV.t index 6de23d147e..c9d966fcff 100644 --- a/t/db_dependent/Acquisition/GetBasketAsCSV.t +++ b/t/db_dependent/Acquisition/GetBasketAsCSV.t @@ -4,15 +4,16 @@ use Modern::Perl; use CGI; -use Test::More tests => 3; +use Test::More tests => 4; use C4::Acquisition; use C4::Biblio; use Koha::Database; -use Koha::CsvProfile; - +use Koha::CsvProfiles; use Koha::Acquisition::Orders; + use t::lib::Mocks; +use Try::Tiny; my $schema = Koha::Database->new()->schema(); $schema->storage->txn_begin(); @@ -82,4 +83,11 @@ is($basket_csv3, 'biblio.author,title,quantity "King, Stephen","Test Record",3 ', 'CSV should be generated with user profile which does not have all headers defined'); +try { + my $basket_csv4 = C4::Acquisition::GetBasketAsCSV($basketno, $query, 'non_existant_profile_id'); + fail("It is not possible to export basket using non-existant profile"); +} catch { + ok($_->isa("Koha::Exceptions::ObjectNotFound"), "Using non-existant profile should throw ObjectNotFound exception"); +}; + $schema->storage->txn_rollback(); -- 2.39.5