2 use Test::More tests => 19;
5 use C4::Letters qw( GetLettersAvailableForALibrary DelLetter );
8 my $schema = Koha::Database->new->schema;
9 $schema->storage->txn_begin;
10 my $dbh = C4::Context->dbh;
12 $dbh->do(q|DELETE FROM letter|);
16 module => 'circulation',
19 name => 'B name for code1 circ',
21 title => 'default title for code1 email',
22 content => 'default content for code1 email',
23 message_transport_type => 'email',
26 module => 'circulation',
29 name => 'B name for code1 circ',
31 title => 'default title for code1 sms',
32 content => 'default content for code1 sms',
33 message_transport_type => 'sms',
36 module => 'circulation',
39 name => 'A name for code2 circ',
41 title => 'default title for code2 email',
42 content => 'default content for code2 email',
43 message_transport_type => 'email',
46 module => 'circulation',
49 name => 'C name for code3 circ',
51 title => 'default title for code3 email',
52 content => 'default content for code3 email',
53 message_transport_type => 'email',
57 module => 'cataloguing',
60 name => 'D name for code1 cat',
62 title => 'default title for code1 cat email',
63 content => 'default content for code1 cat email',
64 message_transport_type => 'email',
68 module => 'circulation',
71 name => 'B name for code1 circ',
73 title => 'CPL title for code1 email',
74 content => 'CPL content for code1 email',
75 message_transport_type => 'email',
78 module => 'circulation',
81 name => 'A name for code2 circ',
83 title => 'CPL title for code2 sms',
84 content => 'CPL content for code2 sms',
85 message_transport_type => 'sms',
88 module => 'circulation',
91 name => 'B name for code1 circ',
93 title => 'MPL title for code1 email',
94 content => 'MPL content for code1 email',
95 message_transport_type => 'email',
99 my $sth = $dbh->prepare(
100 q|INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES (?, ?, ?, ?, ?, ?, ?)|
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} );
106 # GetLettersAvailableForALibrary does not return these fields
108 delete $l->{content};
109 delete $l->{is_html};
110 delete $l->{message_transport_type};
113 my $available_letters;
115 C4::Letters::GetLettersAvailableForALibrary( { module => 'circulation' } );
116 is( scalar(@$available_letters),
117 3, 'There should be 3 default letters for circulation (3 distinct codes)' );
119 $available_letters = C4::Letters::GetLettersAvailableForALibrary(
120 { module => 'circulation', branchcode => '' } );
121 is( scalar(@$available_letters), 3,
122 'There should be 3 default letters for circulation (3 distinct codes), branchcode=""'
124 is_deeply( $available_letters->[0],
125 $letters->[2], 'The letters should be sorted by name (A)' );
126 is_deeply( $available_letters->[1],
127 $letters->[0], 'The letters should be sorted by name (B)' );
128 is_deeply( $available_letters->[2],
129 $letters->[3], 'The letters should be sorted by name (C)' );
131 $available_letters = C4::Letters::GetLettersAvailableForALibrary(
132 { module => 'circulation', branchcode => 'CPL' } );
133 is( scalar(@$available_letters), 3,
134 'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"'
136 is_deeply( $available_letters->[0],
137 $letters->[6], 'The letters should be sorted by name (A)' );
138 is_deeply( $available_letters->[1],
139 $letters->[5], 'The letters should be sorted by name (B)' );
140 is_deeply( $available_letters->[2],
141 $letters->[3], 'The letters should be sorted by name (C)' );
143 $available_letters = C4::Letters::GetLettersAvailableForALibrary(
144 { module => 'circulation', branchcode => 'MPL' } );
145 is( scalar(@$available_letters), 3,
146 'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"'
148 is_deeply( $available_letters->[0],
149 $letters->[2], 'The letters should be sorted by name (A)' );
150 is_deeply( $available_letters->[1],
151 $letters->[7], 'The letters should be sorted by name (B)' );
152 is_deeply( $available_letters->[2],
153 $letters->[3], 'The letters should be sorted by name (C)' );
155 my $letters_by_module = C4::Letters::GetLetters( { module => 'circulation' } );
156 is( scalar(@$letters_by_module),
157 3, '3 different letter codes exist for circulation' );
159 my $letters_by_branchcode = C4::Letters::GetLetters( { branchcode => 'CPL' } );
160 is( scalar(@$letters_by_branchcode),
161 2, '2 different letter codes exist for CPL' );
163 # On the way, we test DelLetter
165 C4::Letters::DelLetter(
166 { module => 'cataloguing', code => 'code1', branchcode => 'MPL' }
169 'No letter exist for MPL cat/code1'
172 C4::Letters::DelLetter(
173 { module => 'circulation', code => 'code1', branchcode => '' }
176 '2 default letters existed for circ/code1 (1 for email and 1 for sms)'
179 C4::Letters::DelLetter(
181 module => 'circulation',
188 '1 letter existed for CPL circ/code1/email'
191 C4::Letters::DelLetter(
192 { module => 'circulation', code => 'code1', branchcode => 'MPL' }
195 '1 letter existed for MPL circ/code1'