Line 0
Link Here
|
0 |
- |
1 |
#!/usr/bin/perl |
|
|
2 |
|
3 |
use C4::Context; |
4 |
use Test::More tests => 95; |
5 |
use Modern::Perl; |
6 |
|
7 |
my $dbh = C4::Context->dbh; |
8 |
$dbh->{RaiseError} = 1; |
9 |
$dbh->{AutoCommit} = 0; |
10 |
|
11 |
use C4::Serials::Numberpattern; |
12 |
|
13 |
# Start by deleting all numberpatterns. |
14 |
my @numberpatterns = GetSubscriptionNumberpatterns(); |
15 |
foreach my $n (@numberpatterns) { |
16 |
DelSubscriptionNumberpattern($n->{id}); |
17 |
} |
18 |
|
19 |
@numberpatterns = GetSubscriptionNumberpatterns(); |
20 |
is(scalar @numberpatterns, 0, "There is no numberpatterns in database"); |
21 |
|
22 |
my $numberpattern = GetSubscriptionNumberpattern(1); |
23 |
is($numberpattern, undef, "GetSubscriptionNumberpattern(1) returns undef"); |
24 |
|
25 |
my $rv = ModSubscriptionNumberpattern($numberpattern); |
26 |
is($rv, undef, "ModSubscriptionNumberpattern(undef) returns undef"); |
27 |
$numberpattern = {}; |
28 |
$rv = ModSubscriptionNumberpattern($numberpattern); |
29 |
is($rv, undef, "ModSubscriptionNumberpattern({}) returns undef"); |
30 |
# returns 0 because id doesn't exist |
31 |
$numberpattern = { id => 1, label => "Test numberpattern 1" }; |
32 |
$rv = ModSubscriptionNumberpattern($numberpattern); |
33 |
is($rv, '0E0', "ModSubscriptionNumberpattern({id=1,label=>'Test numberpattern 1'}) returns '0 but true'"); |
34 |
|
35 |
$numberpattern = undef; |
36 |
my $id = AddSubscriptionNumberpattern($numberpattern); |
37 |
is($id, undef, "AddSubscriptionNumberpattern(undef) returns undef"); |
38 |
$numberpattern = {}; |
39 |
$id = AddSubscriptionNumberpattern($numberpattern); |
40 |
is($id, undef, "AddSubscriptionNumberpattern({}) returns undef"); |
41 |
$numberpattern = { label => "Test numberpattern 1", numberingmethod => "{X}" }; |
42 |
$id = AddSubscriptionNumberpattern($numberpattern); |
43 |
ok((defined($id) && ($id > 0)), "AddSubscriptionNumberpattern({label => 'Test numberpattern 1', numberingmethod => '{X}'}) returns numberpattern id"); |
44 |
|
45 |
$numberpattern = GetSubscriptionNumberpattern($id); |
46 |
isa_ok($numberpattern, 'HASH', "GetSubscriptionNumberpattern($id)"); |
47 |
is($numberpattern->{label}, "Test numberpattern 1", "label OK"); |
48 |
is($numberpattern->{numberingmethod}, '{X}', "unit OK"); |
49 |
is($numberpattern->{description}, '', "description OK"); |
50 |
is($numberpattern->{displayorder}, undef, "displayorder OK"); |
51 |
foreach my $key (qw(label add every setto whenmorethan numbering)) { |
52 |
foreach my $index (1,2,3) { |
53 |
ok(exists $numberpattern->{$key . $index}, "$key$index exists"); |
54 |
is($numberpattern->{$key . $index}, undef, "$key$index is undef"); |
55 |
} |
56 |
} |
57 |
|
58 |
$numberpattern->{label} = $numberpattern->{label} . " (modified)"; |
59 |
$numberpattern->{displayorder} = 1; |
60 |
my $i = 0; |
61 |
foreach my $key (qw(label add every setto whenmorethan numbering)) { |
62 |
foreach my $index (1,2,3) { |
63 |
$numberpattern->{$key . $index} = $i++; |
64 |
} |
65 |
} |
66 |
$rv = ModSubscriptionNumberpattern($numberpattern); |
67 |
is($rv, 1, "ModSubscriptionNumberpattern(\$numberpattern) returns 1"); |
68 |
|
69 |
$numberpattern = GetSubscriptionNumberpattern($id); |
70 |
isa_ok($numberpattern, 'HASH', "GetSubscriptionNumberpattern($id)"); |
71 |
is($numberpattern->{label}, "Test numberpattern 1 (modified)", "label OK"); |
72 |
is($numberpattern->{numberingmethod}, '{X}', "unit OK"); |
73 |
is($numberpattern->{description}, '', "description OK"); |
74 |
is($numberpattern->{displayorder}, 1, "displayorder OK"); |
75 |
$i = 0; |
76 |
foreach my $key (qw(label add every setto whenmorethan numbering)) { |
77 |
foreach my $index (1,2,3) { |
78 |
ok(exists $numberpattern->{$key . $index}, "$key$index exists"); |
79 |
is($numberpattern->{$key . $index}, $i++, "$key$index is $i"); |
80 |
} |
81 |
} |
82 |
|
83 |
@numberpatterns = GetSubscriptionNumberpatterns(); |
84 |
is(scalar @numberpatterns, 1, "There is one numberpattern"); |
85 |
|
86 |
diag("Add another numberpattern"); |
87 |
undef $numberpattern->{id}; |
88 |
my $id2 = AddSubscriptionNumberpattern($numberpattern); |
89 |
|
90 |
@numberpatterns = GetSubscriptionNumberpatterns(); |
91 |
is(scalar @numberpatterns, 2, "There are two numberpatterns"); |
92 |
|
93 |
diag("Delete one numberpattern"); |
94 |
DelSubscriptionNumberpattern($id); |
95 |
@numberpatterns = GetSubscriptionNumberpatterns(); |
96 |
is(scalar @numberpatterns, 1, "There is one numberpattern"); |
97 |
|
98 |
diag("Delete the other numberpattern"); |
99 |
DelSubscriptionNumberpattern($id2); |
100 |
@numberpatterns = GetSubscriptionNumberpatterns(); |
101 |
is(scalar @numberpatterns, 0, "There is no numberpattern"); |
102 |
|
103 |
$dbh->rollback; |