64fc4e766315253904e995debc23f64351276e4a
[koha.git] / t / db_dependent / Serials.t
1 #!/usr/bin/perl
2 #
3 # This Koha test module is a stub!
4 # Add more tests here!!!
5
6 use Modern::Perl;
7 use YAML;
8
9 use CGI;
10 use C4::Serials;
11 use C4::Serials::Frequency;
12 use C4::Debug;
13 use Test::More tests => 35;
14
15 BEGIN {
16     use_ok('C4::Serials');
17 }
18
19 my $subscriptionid = 1;
20 my $subscriptioninformation = GetSubscription( $subscriptionid );
21
22 my @subscriptions = GetSubscriptions( $$subscriptioninformation{bibliotitle} );
23 isa_ok( \@subscriptions, 'ARRAY' );
24
25 @subscriptions = GetSubscriptions( undef, $$subscriptioninformation{issn} );
26 isa_ok( \@subscriptions, 'ARRAY' );
27
28 @subscriptions = GetSubscriptions( undef, undef, $$subscriptioninformation{ean} );
29 isa_ok( \@subscriptions, 'ARRAY' );
30
31 @subscriptions = GetSubscriptions( undef, undef, undef, $$subscriptioninformation{bibnum} );
32 isa_ok( \@subscriptions, 'ARRAY' );
33
34 my $frequency = GetSubscriptionFrequency($subscriptioninformation->{periodicity});
35 my $old_frequency;
36 if (not $frequency->{unit}) {
37     $old_frequency = $frequency->{id};
38     $frequency->{unit} = "month";
39     $frequency->{unitsperissue} = 1;
40     $frequency->{issuesperunit} = 1;
41     $frequency->{description} = "Frequency created by t/db_dependant/Serials.t";
42     $subscriptioninformation->{periodicity} = AddSubscriptionFrequency($frequency);
43
44     ModSubscription( @$subscriptioninformation{qw(
45         librarian branchcode aqbooksellerid cost aqbudgetid startdate
46         periodicity firstacquidate irregularity numberpattern locale
47         numberlength weeklength monthlength lastvalue1 innerloop1 lastvalue2
48         innerloop2 lastvalue3 innerloop3 status biblionumber callnumber notes
49         letter manualhistory internalnotes serialsadditems staffdisplaycount
50         opacdisplaycount graceperiod location enddate subscriptionid
51         skip_serialseq
52     )} );
53 }
54 my $expirationdate = GetExpirationDate($subscriptionid) ;
55 ok( $expirationdate, "not NULL" );
56
57 is(C4::Serials::GetLateIssues(), undef, 'test getting late issues');
58
59 ok(C4::Serials::GetSubscriptionHistoryFromSubscriptionId($subscriptionid), 'test getting history from sub-scription');
60
61 my ($serials_count, @serials) = GetSerials($subscriptionid);
62 ok($serials_count > 0, 'Subscription has at least one serial');
63 my $serial = $serials[0];
64
65 ok(C4::Serials::GetSerialStatusFromSerialId($serial->{serialid}), 'test getting Serial Status From Serial Id');
66
67 isa_ok(C4::Serials::GetSerialInformation($serial->{serialid}), 'HASH', 'test getting Serial Information');
68
69 # Delete created frequency
70 if ($old_frequency) {
71     my $freq_to_delete = $subscriptioninformation->{periodicity};
72     $subscriptioninformation->{periodicity} = $old_frequency;
73
74     ModSubscription( @$subscriptioninformation{qw(
75         librarian branchcode aqbooksellerid cost aqbudgetid startdate
76         periodicity firstacquidate irregularity numberpattern locale
77         numberlength weeklength monthlength lastvalue1 innerloop1 lastvalue2
78         innerloop2 lastvalue3 innerloop3 status biblionumber callnumber notes
79         letter manualhistory internalnotes serialsadditems staffdisplaycount
80         opacdisplaycount graceperiod location enddate subscriptionid
81         skip_serialseq
82     )} );
83
84     DelSubscriptionFrequency($freq_to_delete);
85 }
86
87
88 # Test calling subs without parameters
89 is(C4::Serials::AddItem2Serial(), undef, 'test adding item to serial');
90 is(C4::Serials::UpdateClaimdateIssues(), undef, 'test updating claim date');
91 is(C4::Serials::GetFullSubscription(), undef, 'test getting full subscription');
92 is(C4::Serials::PrepareSerialsData(), undef, 'test preparing serial data');
93 is(C4::Serials::GetSubscriptionsFromBiblionumber(), undef, 'test getting subscriptions form biblio number');
94
95 is(C4::Serials::GetSerials(), undef, 'test getting serials when you enter nothing');
96 is(C4::Serials::GetSerials2(), undef, 'test getting serials when you enter nothing');
97
98 is(C4::Serials::GetLatestSerials(), undef, 'test getting lastest serials');
99
100 is(C4::Serials::GetDistributedTo(), undef, 'test getting distributed when nothing is entered');
101
102 is(C4::Serials::GetNextSeq(), undef, 'test getting next seq when you enter nothing');
103
104 is(C4::Serials::GetSeq(), undef, 'test getting seq when you enter nothing');
105
106 is(C4::Serials::CountSubscriptionFromBiblionumber(), undef, 'test counting subscription when nothing is entered');
107
108 is(C4::Serials::ModSubscriptionHistory(), undef, 'test modding subscription history');
109
110 is(C4::Serials::ModSerialStatus(),undef, 'test modding serials');
111
112 is(C4::Serials::NewIssue(), undef, 'test getting 0 when nothing is entered');
113
114 is(C4::Serials::ItemizeSerials(),undef, 'test getting nothing when nothing is entered');
115
116 is(C4::Serials::HasSubscriptionStrictlyExpired(), undef, 'test if the subscriptions has expired');
117 is(C4::Serials::HasSubscriptionExpired(), undef, 'test if the subscriptions has expired');
118
119 is(C4::Serials::GetLateOrMissingIssues(), undef, 'test getting last or missing issues');
120
121 is(C4::Serials::removeMissingIssue(), undef, 'test removing a missing issue');
122
123 is(C4::Serials::updateClaim(),undef, 'test updating claim');
124
125 is(C4::Serials::getsupplierbyserialid(),undef, 'test getting supplier idea');
126
127 is(C4::Serials::check_routing(), undef, 'test checking route');
128
129 is(C4::Serials::addroutingmember(),undef, 'test adding route member');