Bug 17006: Add /patrons/{patron_id}/password
[koha.git] / t / db_dependent / Letters / GetLetterTemplates.t
1 use Modern::Perl;
2 use Test::More tests => 7;
3
4 use C4::Context;
5 use C4::Letters qw( GetLetterTemplates );
6 use Koha::Database;
7
8 my $schema = Koha::Database->new->schema;
9 $schema->storage->txn_begin;
10 my $dbh = C4::Context->dbh;
11
12 $dbh->do(q|DELETE FROM letter|);
13
14 my $letters = [
15     {
16         module                 => 'circulation',
17         code                   => 'code1',
18         branchcode             => '',
19         name                   => 'B default name for code1 circ',
20         is_html                => 0,
21         title                  => 'default title for code1 email',
22         content                => 'default content for code1 email',
23         message_transport_type => 'email',
24     },
25     {
26         module                 => 'circulation',
27         code                   => 'code1',
28         branchcode             => '',
29         name                   => 'B default name for code1 circ',
30         is_html                => 0,
31         title                  => 'default title for code1 sms',
32         content                => 'default content for code1 sms',
33         message_transport_type => 'sms',
34     },
35     {
36         module                 => 'circulation',
37         code                   => 'code2',
38         branchcode             => '',
39         name                   => 'A default name for code2 circ',
40         is_html                => 0,
41         title                  => 'default title for code2 email',
42         content                => 'default content for code2 email',
43         message_transport_type => 'email',
44     },
45     {
46         module                 => 'circulation',
47         code                   => 'code3',
48         branchcode             => '',
49         name                   => 'C default name for code3 circ',
50         is_html                => 0,
51         title                  => 'default title for code3 email',
52         content                => 'default content for code3 email',
53         message_transport_type => 'email',
54     },
55
56     {
57         module                 => 'cataloguing',
58         code                   => 'code1',
59         branchcode             => '',
60         name                   => 'default name for code1 cat',
61         is_html                => 0,
62         title                  => 'default title for code1 cat email',
63         content                => 'default content for code1 cat email',
64         message_transport_type => 'email',
65     },
66
67     {
68         module                 => 'circulation',
69         code                   => 'code1',
70         branchcode             => 'CPL',
71         name                   => 'B CPL name for code1 circ',
72         is_html                => 0,
73         title                  => 'CPL title for code1 email',
74         content                => 'CPL content for code1 email',
75         message_transport_type => 'email',
76     },
77     {
78         module                 => 'circulation',
79         code                   => 'code2',
80         branchcode             => 'CPL',
81         name                   => 'A CPL name for code1 circ',
82         is_html                => 0,
83         title                  => 'CPL title for code1 sms',
84         content                => 'CPL content for code1 sms',
85         message_transport_type => 'sms',
86     },
87     {
88         module                 => 'circulation',
89         code                   => 'code1',
90         branchcode             => 'MPL',
91         name                   => 'B MPL name for code1 circ',
92         is_html                => 0,
93         title                  => 'MPL title for code1 email',
94         content                => 'MPL content for code1 email',
95         message_transport_type => 'email',
96     },
97 ];
98
99 my $sth = $dbh->prepare(
100 q|INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES (?, ?, ?, ?, ?, ?, ?)|
101 );
102 for my $l (@$letters) {
103     $sth->execute( $l->{module}, $l->{code}, $l->{branchcode}, $l->{name},
104         $l->{title}, $l->{content}, $l->{message_transport_type} );
105 }
106
107 my $letter_templates;
108 $letter_templates = C4::Letters::GetLetterTemplates;
109 is_deeply( $letter_templates, [],
110     'GetLetterTemplates should not return templates if not param is given' );
111
112 $letter_templates = C4::Letters::GetLetterTemplates(
113     { module => 'circulation', code => 'code1', branchcode => '' } );
114 is( scalar( @$letter_templates ),
115     2, '2 default templates should exist for circulation code1' );
116 my $has_email = grep { $_->{message_transport_type} eq 'email' } @$letter_templates;
117 is( $has_email, 1, 'The mtt email should exist for circulation code1' );
118 my $has_sms = grep { $_->{message_transport_type} eq 'sms' } @$letter_templates;
119 is( $has_sms, 1, 'The mtt sms should exist for circulation code1' );
120
121 $letter_templates = C4::Letters::GetLetterTemplates(
122     { module => 'circulation', code => 'code1', branchcode => 'CPL' } );
123 is( scalar( @$letter_templates ),
124     1, '1 template should exist for circulation CPL code1' );
125 $has_email = grep { $_->{message_transport_type} eq 'email' } @$letter_templates;
126 is( $has_email, 1, 'The mtt should be email for circulation CPL code1' );
127
128 $letter_templates = C4::Letters::GetLetterTemplates(
129     { module => 'circulation', code => 'code1' } );
130 is( scalar( @$letter_templates ),
131     2, '2 default templates should exist for circulation code1 (even if branchcode is not given)' );