Bugzilla – Attachment 19370 Details for
Bug 7688
Change subscriptions numbering pattern and frequencies
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 7688: Add unit tests for C4::Serials::GetNextDate()
Bug-7688-Add-unit-tests-for-C4SerialsGetNextDate.patch (text/plain), 17.02 KB, created by
Julian Maurice
on 2013-07-03 14:01:18 UTC
(
hide
)
Description:
Bug 7688: Add unit tests for C4::Serials::GetNextDate()
Filename:
MIME Type:
Creator:
Julian Maurice
Created:
2013-07-03 14:01:18 UTC
Size:
17.02 KB
patch
obsolete
>From dd9d0fbb9c76382f2a0381107be5a6aa4df03849 Mon Sep 17 00:00:00 2001 >From: Julian Maurice <julian.maurice@biblibre.com> >Date: Wed, 3 Jul 2013 15:56:46 +0200 >Subject: [PATCH] Bug 7688: Add unit tests for C4::Serials::GetNextDate() > >--- > t/db_dependent/Serials/GetNextDate.t | 491 ++++++++++++++++++++++++++++++++++ > 1 file changed, 491 insertions(+) > create mode 100644 t/db_dependent/Serials/GetNextDate.t > >diff --git a/t/db_dependent/Serials/GetNextDate.t b/t/db_dependent/Serials/GetNextDate.t >new file mode 100644 >index 0000000..ed80f29 >--- /dev/null >+++ b/t/db_dependent/Serials/GetNextDate.t >@@ -0,0 +1,491 @@ >+#!/usr/bin/perl >+ >+use C4::Context; >+use Test::More tests => 84; >+use Modern::Perl; >+ >+my $dbh = C4::Context->dbh; >+$dbh->{RaiseError} = 1; >+$dbh->{AutoCommit} = 0; >+ >+use C4::Serials::Frequency; >+use C4::Serials; >+ >+# TEST CASE 1 - 1 issue per day, no irregularities >+my $frequency = { >+ description => "One issue per day", >+ unit => 'day', >+ issuesperunit => 1, >+ unitsperissue => 1, >+}; >+my $id = AddSubscriptionFrequency($frequency); >+ >+my $subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+my $publisheddate = $subscription->{firstacquidate}; >+ >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-02'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-03'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-04'); >+ >+# TEST CASE 2 - 1 issue per day, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '2;4', # Skip the second and fourth issues >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-03'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-05'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-06'); >+ >+# TEST CASE 3 - 2 issues per day, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "Two issues per day", >+ unit => 'day', >+ issuesperunit => 2, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-02'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-02'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-03'); >+ >+# TEST CASE 4 - 2 issues per day, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '3;5;6', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-02'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-04'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-04'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-05'); >+ >+# TEST CASE 5 - 1 issue every 2 days, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "one issue every two days", >+ unit => 'day', >+ issuesperunit => 1, >+ unitsperissue => 2, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-03'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-05'); >+ >+# TEST CASE 6 - 1 issue every 2 days, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '3', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-03'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-07'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-09'); >+ >+# TEST CASE 7 - 1 issue per week, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "one issue per week", >+ unit => 'week', >+ issuesperunit => 1, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-08'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-15'); >+ >+# TEST CASE 8 - 1 issue per week, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '3', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-08'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-22'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-29'); >+ >+# TEST CASE 9 - 1 issue every 2 weeks, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "one issue every 2 weeks", >+ unit => 'week', >+ issuesperunit => 1, >+ unitsperissue => 2, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-15'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-29'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-02-12'); >+ >+# TEST CASE 10 - 1 issue every 2 weeks, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '3', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-15'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-02-12'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-02-26'); >+ >+# TEST CASE 11 - 2 issues per week, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "two issues per week", >+ unit => 'week', >+ issuesperunit => 2, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+# when more than 1 issue per week, date is automatically set to monday >+# because we can't guess the right day >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-05'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-05'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-12'); >+ >+# TEST CASE 12 - 2 issues per week, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '3;5;6', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-05'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-19'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-19'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-26'); >+ >+# TEST CASE 13 - 1 issue per month, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "1 issue per month", >+ unit => 'month', >+ issuesperunit => 1, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-02-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-03-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-04-01'); >+ >+# TEST CASE 14 - 1 issue per month, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '2;4', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-03-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-05-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-06-01'); >+ >+# TEST CASE 15 - 1 issue every 2 months, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "1 issue every 2 months", >+ unit => 'month', >+ issuesperunit => 1, >+ unitsperissue => 2, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-03-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-05-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-07-01'); >+ >+# TEST CASE 16 - 1 issue every 2 months, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '2;3', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-07-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-09-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-11-01'); >+ >+# TEST CASE 17 - 2 issues per month, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "2 issues per month", >+ unit => 'month', >+ issuesperunit => 2, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-02-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-02-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-03-01'); >+ >+# TEST CASE 18 - 2 issues per month, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '3;5;6', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-02-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-04-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-04-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-05-01'); >+ >+# TEST CASE 19 - 1 issue per year, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "1 issue per year", >+ unit => 'year', >+ issuesperunit => 1, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1971-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1972-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1973-01-01'); >+ >+# TEST CASE 20 - 1 issue per year, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '2;4', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1972-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1974-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1975-01-01'); >+ >+# TEST CASE 21 - 1 issue every 2 years, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "1 issue every 2 years", >+ unit => 'year', >+ issuesperunit => 1, >+ unitsperissue => 2, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1972-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1974-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1976-01-01'); >+ >+# TEST CASE 22 - 1 issue every 2 years, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '2;4', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1974-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1978-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1980-01-01'); >+ >+# TEST CASE 23 - 2 issues per year, no irregularity >+$id = AddSubscriptionFrequency({ >+ description => "1 issue every 2 years", >+ unit => 'year', >+ issuesperunit => 2, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1971-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1971-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1972-01-01'); >+ >+# TEST CASE 24 - 2 issues per year, irregularities >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '3;5;6', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1971-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1973-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1973-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1974-01-01'); >+ >+# TEST CASE 25 - Irregular >+$id = AddSubscriptionFrequency({ >+ description => "Irregular", >+ unit => '', >+ issuesperunit => 1, >+ unitsperissue => 1, >+}); >+$subscription = { >+ periodicity => $id, >+ firstacquidate => '1970-01-01', >+ irregularity => '', >+ countissuesperunit => 1, >+}; >+$publisheddate = $subscription->{firstacquidate}; >+# GetNextDate always return the same date if subscription is irregular >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+$publisheddate = GetNextDate($subscription, $publisheddate); >+is($publisheddate, '1970-01-01'); >+ >+$dbh->rollback; >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 7688
:
8110
|
8941
|
8942
|
8943
|
10145
|
10146
|
10468
|
10469
|
10470
|
10739
|
10740
|
10742
|
10743
|
10903
|
10920
|
10985
|
11299
|
11300
|
11489
|
11490
|
12268
|
12269
|
13193
|
13194
|
13195
|
13196
|
14122
|
14123
|
14124
|
14125
|
14996
|
15492
|
15493
|
15494
|
15495
|
15496
|
15534
|
15536
|
15537
|
15538
|
15539
|
15540
|
15541
|
16679
|
16680
|
16681
|
16682
|
16683
|
16684
|
16744
|
17283
|
17284
|
17285
|
17855
|
17856
|
17857
|
18298
|
18299
|
18300
|
18793
|
18794
|
18795
|
19368
|
19369
| 19370 |
19393
|
19395