Bug 9016: Define different transport types for overdues
[koha.git] / t / db_dependent / Overdues.t
1 #!/usr/bin/perl;
2
3 use Modern::Perl;
4 use Test::More;# tests => 3;
5
6 use C4::Context;
7 use_ok('C4::Overdues');
8 can_ok('C4::Overdues', 'GetOverdueMessageTransportTypes');
9
10 my $dbh = C4::Context->dbh;
11 $dbh->{AutoCommit} = 0;
12 $dbh->{RaiseError} = 1;
13
14 $dbh->do(q|DELETE FROM letter|);
15 $dbh->do(q|DELETE FROM message_queue|);
16 $dbh->do(q|DELETE FROM message_transport_types|);
17 $dbh->do(q|DELETE FROM overduerules_transport_types|);
18
19 $dbh->do(q|
20     INSERT INTO message_transport_types( message_transport_type ) VALUES ('email'), ('phone'), ('print'), ('sms')
21 |);
22
23 $dbh->do(q|
24     INSERT INTO overduerules_transport_types( branchcode, categorycode, letternumber, message_transport_type ) VALUES
25     ('CPL', 'PT', 1, 'email'),
26     ('CPL', 'PT', 2, 'sms'),
27     ('CPL', 'PT', 3, 'email'),
28     ('CPL', 'YA', 3, 'print'),
29     ('', 'PT', 1, 'email'),
30     ('', 'PT', 2, 'email'),
31     ('', 'PT', 2, 'sms'),
32     ('', 'PT', 3, 'print'),
33     ('', 'YA', 2, 'sms')
34 |);
35
36 my $mtts;
37
38 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('CPL', 'PT');
39 is( $mtts, undef, 'GetOverdueMessageTransportTypes: returns undef if no letternumber given' );
40
41 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('CPL', undef, 1);
42 is( $mtts, undef, 'GetOverdueMessageTransportTypes: returns undef if no categorycode given' );
43
44 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('CPL');
45 is( $mtts, undef, 'GetOverdueMessageTransportTypes: returns undef if no letternumber and categorycode given' );
46
47 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('CPL', 'PT', 1);
48 is_deeply( $mtts, ['email'], 'GetOverdueMessageTransportTypes: first overdue is by email for PT (CPL)' );
49
50 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('CPL', 'PT', 2);
51 is_deeply( $mtts, ['sms'], 'GetOverdueMessageTransportTypes: second overdue is by sms for PT (CPL)' );
52
53 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('CPL', 'PT', 3);
54 is_deeply( $mtts, ['email'], 'GetOverdueMessageTransportTypes: third overdue is by email for PT (CPL)' );
55
56 my $mtts = C4::Overdues::GetOverdueMessageTransportTypes('', 'PT', 1);
57 is_deeply( $mtts, ['email'], 'GetOverdueMessageTransportTypes: first overdue is by email for PT (default)' );
58
59 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('', 'PT', 2);
60 is_deeply( $mtts, ['email', 'sms'], 'GetOverdueMessageTransportTypes: second overdue is by email and sms for PT (default)' );
61
62 $mtts = C4::Overdues::GetOverdueMessageTransportTypes('', 'PT', 3);
63 is_deeply( $mtts, ['print'], 'GetOverdueMessageTransportTypes: third overdue is by print for PT (default)' );
64
65
66 done_testing;