#!/usr/bin/perl use Test::More tests => 15; BEGIN { use_ok('C4::Circulation'); } my $CircControl = C4::Context->preference('CircControl'); my $HomeOrHoldingBranch = C4::Context->preference('HomeOrHoldingBranch'); my $item = { homebranch => 'ItemHomeBranch', holdingbranch => 'ItemHoldingBranch' }; my $borrower = { branchcode => 'BorrowerBranch' }; # No userenv, PickupLibrary C4::Context->set_preference('CircControl', 'PickupLibrary'); is( C4::Context->preference('CircControl'), 'PickupLibrary', 'CircControl changed to PickupLibrary' ); is( C4::Circulation::_GetCircControlBranch($item, $borrower), $item->{$HomeOrHoldingBranch}, '_GetCircControlBranch returned item branch (no userenv defined)' ); # No userenv, PatronLibrary C4::Context->set_preference('CircControl', 'PatronLibrary'); is( C4::Context->preference('CircControl'), 'PatronLibrary', 'CircControl changed to PatronLibrary' ); is( C4::Circulation::_GetCircControlBranch($item, $borrower), $borrower->{branchcode}, '_GetCircControlBranch returned borrower branch' ); # No userenv, ItemHomeLibrary C4::Context->set_preference('CircControl', 'ItemHomeLibrary'); is( C4::Context->preference('CircControl'), 'ItemHomeLibrary', 'CircControl changed to ItemHomeLibrary' ); is( $item->{$HomeOrHoldingBranch}, C4::Circulation::_GetCircControlBranch($item, $borrower), '_GetCircControlBranch returned item branch' ); diag('Now, set a userenv'); C4::Context->_new_userenv('xxx'); C4::Context::set_userenv(0,0,0,'firstname','surname', 'CurrentBranch', 'CurrentBranchName', '', '', ''); is(C4::Context->userenv->{branch}, 'CurrentBranch', 'userenv set'); # Userenv set, PickupLibrary C4::Context->set_preference('CircControl', 'PickupLibrary'); is( C4::Context->preference('CircControl'), 'PickupLibrary', 'CircControl changed to PickupLibrary' ); is( C4::Circulation::_GetCircControlBranch($item, $borrower), 'CurrentBranch', '_GetCircControlBranch returned current branch' ); # Userenv set, PatronLibrary C4::Context->set_preference('CircControl', 'PatronLibrary'); is( C4::Context->preference('CircControl'), 'PatronLibrary', 'CircControl changed to PatronLibrary' ); is( C4::Circulation::_GetCircControlBranch($item, $borrower), $borrower->{branchcode}, '_GetCircControlBranch returned borrower branch' ); # Userenv set, ItemHomeLibrary C4::Context->set_preference('CircControl', 'ItemHomeLibrary'); is( C4::Context->preference('CircControl'), 'ItemHomeLibrary', 'CircControl changed to ItemHomeLibrary' ); is( C4::Circulation::_GetCircControlBranch($item, $borrower), $item->{$HomeOrHoldingBranch}, '_GetCircControlBranch returned item branch' ); # Reset initial configuration C4::Context->set_preference('CircControl', $CircControl); is( C4::Context->preference('CircControl'), $CircControl, 'CircControl reset to its initial value' );