From c3b8bcf675a83bcb5ce52feaaa842a0ca915fe91 Mon Sep 17 00:00:00 2001
From: Alex Arnaud <alex.arnaud@biblibre.com>
Date: Tue, 9 Jun 2015 09:58:58 +0200
Subject: [PATCH] Bug 9223 [Follow-up] add unit tests for GetSupportList and
GetSupportName subroutine
---
t/db_dependent/Suggestions.t | 66 +++++++++++++++++++++++++++++++++++++-----
1 file changed, 58 insertions(+), 8 deletions(-)
diff --git a/t/db_dependent/Suggestions.t b/t/db_dependent/Suggestions.t
index 29e59bb..a6c640d 100644
--- a/t/db_dependent/Suggestions.t
+++ b/t/db_dependent/Suggestions.t
@@ -26,7 +26,8 @@ use C4::Budgets qw( AddBudgetPeriod AddBudget );
use Koha::DateUtils qw( dt_from_string );
use DateTime::Duration;
-use Test::More tests => 105;
+use Test::More tests => 110;
+use Test::MockModule;
use Test::Warn;
BEGIN {
@@ -41,6 +42,45 @@ my $sql;
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
+my $koha = new Test::MockModule('C4::Koha');
+$koha->mock(
+ 'GetAuthorisedValues',
+ sub {
+ my $category = shift;
+ my $ret = [];
+ if ($category eq 'ccode') {
+ $ret = [
+ {
+ 'imageurl' => '',
+ 'authorised_value' => 'TH',
+ 'lib_opac' => "Thesis",
+ 'lib' => "Thesis",
+ 'category' => 'CCODE',
+ 'id' => '3810',
+ 'selected' => 0
+ },
+ {
+ 'imageurl' => '',
+ 'authorised_value' => 'BOOK',
+ 'lib_opac' => 'Book',
+ 'lib' => 'Book',
+ 'category' => 'CCODE',
+ 'id' => '3807',
+ 'selected' => 0
+ },
+ ];
+ }
+ return $ret;
+ }
+);
+
+$koha->mock(
+ 'GetKohaAuthorisedValueLib',
+ sub {
+ return 'Thesis';
+ }
+);
+
# Reset item types to only the default ones
$dbh->do(q|DELETE FROM itemtypes;|);
$sql = "
@@ -342,16 +382,26 @@ $suggestions = GetSuggestionByStatus('CHECKED');
is( @$suggestions, 1, 'DelSuggestion deletes one suggestion' );
is( $suggestions->[0]->{title}, $del_suggestion->{title}, 'DelSuggestion deletes the correct suggestion' );
-## Bug 11466, making sure GetSupportList() returns itemtypes, even if AdvancedSearchTypes has multiple values
-C4::Context->set_preference("AdvancedSearchTypes", 'itemtypes|loc|ccode');
+C4::Context->set_preference('SuggestionsUseValues', 'itemtypes');
my $itemtypes1 = C4::Koha::GetSupportList();
-is(@$itemtypes1, 8, "Purchase suggestion itemtypes collected, multiple AdvancedSearchTypes");
+is(@$itemtypes1, 8, "Purchase suggestion itemtypes collected, SuggestionsUseValues is itemtypes");
+my $mp_description = C4::Koha::GetSupportName('MP');
+is($mp_description, 'Maps', 'Purchase suggestion itemtypes collected, itemtype MP description should be Maps');
+
+is($itemtypes1->[0]{'authorised_value'},'BK', "Purchase suggestion itemtypes collected, SuggestionsUseValues is itemtypes first authorized value is BK");
+is($itemtypes1->[0]{'lib'},'Books', "Purchase suggestion itemtypes collected, SuggestionsUseValues is itemtypes first lib is books");
+is($itemtypes1->[0]{'imageurl'},'bridge/book.gif', "Purchase suggestion itemtypes collected, SuggestionsUseValues is itemtypes, first imageurl is bridge/book.gif");
+
+C4::Context->set_preference('SuggestionsUseValues', 'ccode');
+my $ccodes = C4::Koha::GetSupportList();
+is(@$ccodes, 2, "Purchase suggestion itemtypes collected, SuggestionsUseValues is ccode");
+my $th_description = C4::Koha::GetSupportName('TH');
+is($th_description, 'Thesis', 'Purchase suggestion itemtypes collected, ccode TH description should be Thesis');
-C4::Context->set_preference("AdvancedSearchTypes", 'itemtypes');
-my $itemtypes2 = C4::Koha::GetSupportList();
-is(@$itemtypes2, 8, "Purchase suggestion itemtypes collected, default AdvancedSearchTypes");
-is_deeply($itemtypes1, $itemtypes2, 'same set of purchase suggestion formats retrieved');
+C4::Context->set_preference('SuggestionsUseValues', 'none');
+my $empty = C4::Koha::GetSupportList();
+is(@$empty, 0, "Purchase suggestion itemtypes collected, SuggestionsUseValues is None");
# Test budgetid fk
$my_suggestion->{budgetid} = ''; # If budgetid == '', NULL should be set in DB
--
1.7.10.4