Bug 8435: (follow-up) add unit tests for can_edit_subscription
authorJonathan Druart <jonathan.druart@biblibre.com>
Wed, 27 Mar 2013 15:53:56 +0000 (16:53 +0100)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 31 Oct 2013 15:29:19 +0000 (15:29 +0000)
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/Serials.pm
t/db_dependent/Serials_2.t

index 72d6bad..7c4bf82 100644 (file)
@@ -20,6 +20,7 @@ package C4::Serials;
 
 use Modern::Perl;
 
+use C4::Auth qw(haspermission);
 use C4::Context;
 use C4::Dates qw(format_date format_date_in_iso);
 use Date::Calc qw(:all);
@@ -2794,6 +2795,14 @@ sub subscriptionCurrentlyOnOrder {
     return $sth->fetchrow_array;
 }
 
+=head2 can_edit_subscription
+
+    $can = can_edit_subscription( $subscriptionid[, $userid] );
+
+Return 1 if the subscription is editable by the current logged user (or a given $userid), else 0.
+
+=cut
+
 sub can_edit_subscription {
     my ( $subscription, $userid ) = @_;
     my $flags = C4::Context->userenv->{flags};
index 01cf853..7c37dee 100644 (file)
@@ -1,10 +1,65 @@
 #!/usr/bin/perl
-use strict;
-use warnings;
+use Modern::Perl;
 
-use Test::More;
+use Test::More tests => 4;
 
 use_ok('C4::Serials');
+use_ok('C4::Budgets');
+
 my $supplierlist=eval{GetSuppliersWithLateIssues()};
 ok(length($@)==0,"No SQL problem in GetSuppliersWithLateIssues");
-done_testing();
+
+my $biblionumber = 1;
+my $budgetid;
+my $bpid = AddBudgetPeriod({
+    budget_period_startdate => '01-01-2015',
+    budget_period_enddate   => '31-12-2015',
+    budget_description      => "budget desc"
+});
+
+my $budget_id = AddBudget({
+    budget_code        => "ABCD",
+    budget_amount      => "123.132",
+    budget_name        => "Périodiques",
+    budget_notes       => "This is a note",
+    budget_description => "Serials",
+    budget_active      => 1,
+    budget_period_id   => $bpid
+});
+
+my $subscriptionid = NewSubscription(
+    undef,      "",     undef, undef, $budget_id, $biblionumber, '01-01-2013',undef,
+    undef,      undef,  undef, undef, undef,      undef,         undef,  undef,
+    undef,      undef,  undef, undef, undef,      undef,         undef,  undef,
+    undef,      undef,  undef, undef, undef,      undef,         undef,  1,
+    "notes",    undef,  undef, undef, undef,      undef,         undef,  0,
+    "intnotes", 0,      undef, undef, 0,          undef,         '31-12-2013',
+);
+die unless $subscriptionid;
+
+# Can edit a subscription
+my @USERENV = (
+    1,
+    'test',
+    'MASTERTEST',
+    'Test',
+    'Test',
+    't',
+    0,
+    0,
+);
+
+C4::Context->_new_userenv ('DUMMY_SESSION_ID');
+C4::Context->set_userenv ( @USERENV );
+my $userenv = C4::Context->userenv;
+
+my $subscription = GetSubscription( $subscriptionid );
+
+is( C4::Serials::can_edit_subscription($subscription), 1, "User can edit a subscription with an empty branchcode");
+#TODO add UT when C4::Auth->set_permissions (or setuserflags) will exist.
+
+
+# cleaning
+DelSubscription( $subscription->{subscriptionid} );
+DelBudgetPeriod($bpid);
+DelBudget($budget_id);