2 use Test::More tests => 19;
5 use C4::Letters qw( GetLettersAvailableForALibrary DelLetter );
7 my $dbh = C4::Context->dbh;
8 $dbh->{RaiseError} = 1;
9 $dbh->{AutoCommit} = 0;
11 $dbh->do(q|DELETE FROM letter|);
15 module => 'circulation',
18 name => 'B default name for code1 circ',
20 title => 'default title for code1 email',
21 content => 'default content for code1 email',
22 message_transport_type => 'email',
25 module => 'circulation',
28 name => 'B default name for code1 circ',
30 title => 'default title for code1 sms',
31 content => 'default content for code1 sms',
32 message_transport_type => 'sms',
35 module => 'circulation',
38 name => 'A default name for code2 circ',
40 title => 'default title for code2 email',
41 content => 'default content for code2 email',
42 message_transport_type => 'email',
45 module => 'circulation',
48 name => 'C default name for code3 circ',
50 title => 'default title for code3 email',
51 content => 'default content for code3 email',
52 message_transport_type => 'email',
56 module => 'cataloguing',
59 name => 'default name for code1 cat',
61 title => 'default title for code1 cat email',
62 content => 'default content for code1 cat email',
63 message_transport_type => 'email',
67 module => 'circulation',
70 name => 'B CPL name for code1 circ',
72 title => 'CPL title for code1 email',
73 content => 'CPL content for code1 email',
74 message_transport_type => 'email',
77 module => 'circulation',
80 name => 'A CPL name for code1 circ',
82 title => 'CPL title for code1 sms',
83 content => 'CPL content for code1 sms',
84 message_transport_type => 'sms',
87 module => 'circulation',
90 name => 'B MPL name for code1 circ',
92 title => 'MPL title for code1 email',
93 content => 'MPL content for code1 email',
94 message_transport_type => 'email',
98 my $sth = $dbh->prepare(
99 q|INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES (?, ?, ?, ?, ?, ?, ?)|
101 for my $l (@$letters) {
102 $sth->execute( $l->{module}, $l->{code}, $l->{branchcode}, $l->{name},
103 $l->{title}, $l->{content}, $l->{message_transport_type} );
105 # GetLettersAvailableForALibrary does not return these fields
107 delete $l->{content};
108 delete $l->{is_html};
109 delete $l->{message_transport_type};
112 my $available_letters;
114 C4::Letters::GetLettersAvailableForALibrary( { module => 'circulation' } );
115 is( scalar(@$available_letters),
116 3, 'There should be 3 default letters for circulation (3 distinct codes)' );
118 $available_letters = C4::Letters::GetLettersAvailableForALibrary(
119 { module => 'circulation', branchcode => '' } );
120 is( scalar(@$available_letters), 3,
121 'There should be 3 default letters for circulation (3 distinct codes), branchcode=""'
123 is_deeply( $available_letters->[0],
124 $letters->[2], 'The letters should be sorted by name (A)' );
125 is_deeply( $available_letters->[1],
126 $letters->[0], 'The letters should be sorted by name (B)' );
127 is_deeply( $available_letters->[2],
128 $letters->[3], 'The letters should be sorted by name (C)' );
130 $available_letters = C4::Letters::GetLettersAvailableForALibrary(
131 { module => 'circulation', branchcode => 'CPL' } );
132 is( scalar(@$available_letters), 3,
133 'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"'
135 is_deeply( $available_letters->[0],
136 $letters->[6], 'The letters should be sorted by name (A)' );
137 is_deeply( $available_letters->[1],
138 $letters->[5], 'The letters should be sorted by name (B)' );
139 is_deeply( $available_letters->[2],
140 $letters->[3], 'The letters should be sorted by name (C)' );
142 $available_letters = C4::Letters::GetLettersAvailableForALibrary(
143 { module => 'circulation', branchcode => 'MPL' } );
144 is( scalar(@$available_letters), 3,
145 'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"'
147 is_deeply( $available_letters->[0],
148 $letters->[2], 'The letters should be sorted by name (A)' );
149 is_deeply( $available_letters->[1],
150 $letters->[7], 'The letters should be sorted by name (B)' );
151 is_deeply( $available_letters->[2],
152 $letters->[3], 'The letters should be sorted by name (C)' );
154 my $letters_by_module = C4::Letters::GetLetters( { module => 'circulation' } );
155 is( scalar(@$letters_by_module),
156 3, '3 different letter codes exist for circulation' );
158 my $letters_by_branchcode = C4::Letters::GetLetters( { branchcode => 'CPL' } );
159 is( scalar(@$letters_by_branchcode),
160 2, '2 different letter codes exist for CPL' );
162 # On the way, we test DelLetter
164 C4::Letters::DelLetter(
165 { module => 'cataloguing', code => 'code1', branchcode => 'MPL' }
168 'No letter exist for MPL cat/code1'
171 C4::Letters::DelLetter(
172 { module => 'circulation', code => 'code1', branchcode => '' }
175 '2 default letters existed for circ/code1 (1 for email and 1 for sms)'
178 C4::Letters::DelLetter(
180 module => 'circulation',
187 '1 letter existed for CPL circ/code1/email'
190 C4::Letters::DelLetter(
191 { module => 'circulation', code => 'code1', branchcode => 'MPL' }
194 '1 letter existed for MPL circ/code1'