Jonathan Druart
64242cabea
And use a DBIx transaction instead. Test plan: prove that the test files modified by this patch are passing Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
196 lines
7 KiB
Perl
196 lines
7 KiB
Perl
use Modern::Perl;
|
|
use Test::More tests => 19;
|
|
|
|
use C4::Context;
|
|
use C4::Letters qw( GetLettersAvailableForALibrary DelLetter );
|
|
use Koha::Database;
|
|
|
|
my $schema = Koha::Database->new->schema;
|
|
$schema->storage->txn_begin;
|
|
my $dbh = C4::Context->dbh;
|
|
|
|
$dbh->do(q|DELETE FROM letter|);
|
|
|
|
my $letters = [
|
|
{
|
|
module => 'circulation',
|
|
code => 'code1',
|
|
branchcode => '',
|
|
name => 'B name for code1 circ',
|
|
is_html => 0,
|
|
title => 'default title for code1 email',
|
|
content => 'default content for code1 email',
|
|
message_transport_type => 'email',
|
|
},
|
|
{
|
|
module => 'circulation',
|
|
code => 'code1',
|
|
branchcode => '',
|
|
name => 'B name for code1 circ',
|
|
is_html => 0,
|
|
title => 'default title for code1 sms',
|
|
content => 'default content for code1 sms',
|
|
message_transport_type => 'sms',
|
|
},
|
|
{
|
|
module => 'circulation',
|
|
code => 'code2',
|
|
branchcode => '',
|
|
name => 'A name for code2 circ',
|
|
is_html => 0,
|
|
title => 'default title for code2 email',
|
|
content => 'default content for code2 email',
|
|
message_transport_type => 'email',
|
|
},
|
|
{
|
|
module => 'circulation',
|
|
code => 'code3',
|
|
branchcode => '',
|
|
name => 'C name for code3 circ',
|
|
is_html => 0,
|
|
title => 'default title for code3 email',
|
|
content => 'default content for code3 email',
|
|
message_transport_type => 'email',
|
|
},
|
|
|
|
{
|
|
module => 'cataloguing',
|
|
code => 'code1',
|
|
branchcode => '',
|
|
name => 'D name for code1 cat',
|
|
is_html => 0,
|
|
title => 'default title for code1 cat email',
|
|
content => 'default content for code1 cat email',
|
|
message_transport_type => 'email',
|
|
},
|
|
|
|
{
|
|
module => 'circulation',
|
|
code => 'code1',
|
|
branchcode => 'CPL',
|
|
name => 'B name for code1 circ',
|
|
is_html => 0,
|
|
title => 'CPL title for code1 email',
|
|
content => 'CPL content for code1 email',
|
|
message_transport_type => 'email',
|
|
},
|
|
{
|
|
module => 'circulation',
|
|
code => 'code2',
|
|
branchcode => 'CPL',
|
|
name => 'A name for code2 circ',
|
|
is_html => 0,
|
|
title => 'CPL title for code2 sms',
|
|
content => 'CPL content for code2 sms',
|
|
message_transport_type => 'sms',
|
|
},
|
|
{
|
|
module => 'circulation',
|
|
code => 'code1',
|
|
branchcode => 'MPL',
|
|
name => 'B name for code1 circ',
|
|
is_html => 0,
|
|
title => 'MPL title for code1 email',
|
|
content => 'MPL content for code1 email',
|
|
message_transport_type => 'email',
|
|
},
|
|
];
|
|
|
|
my $sth = $dbh->prepare(
|
|
q|INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES (?, ?, ?, ?, ?, ?, ?)|
|
|
);
|
|
for my $l (@$letters) {
|
|
$sth->execute( $l->{module}, $l->{code}, $l->{branchcode}, $l->{name},
|
|
$l->{title}, $l->{content}, $l->{message_transport_type} );
|
|
|
|
# GetLettersAvailableForALibrary does not return these fields
|
|
delete $l->{title};
|
|
delete $l->{content};
|
|
delete $l->{is_html};
|
|
delete $l->{message_transport_type};
|
|
}
|
|
|
|
my $available_letters;
|
|
$available_letters =
|
|
C4::Letters::GetLettersAvailableForALibrary( { module => 'circulation' } );
|
|
is( scalar(@$available_letters),
|
|
3, 'There should be 3 default letters for circulation (3 distinct codes)' );
|
|
|
|
$available_letters = C4::Letters::GetLettersAvailableForALibrary(
|
|
{ module => 'circulation', branchcode => '' } );
|
|
is( scalar(@$available_letters), 3,
|
|
'There should be 3 default letters for circulation (3 distinct codes), branchcode=""'
|
|
);
|
|
is_deeply( $available_letters->[0],
|
|
$letters->[2], 'The letters should be sorted by name (A)' );
|
|
is_deeply( $available_letters->[1],
|
|
$letters->[0], 'The letters should be sorted by name (B)' );
|
|
is_deeply( $available_letters->[2],
|
|
$letters->[3], 'The letters should be sorted by name (C)' );
|
|
|
|
$available_letters = C4::Letters::GetLettersAvailableForALibrary(
|
|
{ module => 'circulation', branchcode => 'CPL' } );
|
|
is( scalar(@$available_letters), 3,
|
|
'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"'
|
|
);
|
|
is_deeply( $available_letters->[0],
|
|
$letters->[6], 'The letters should be sorted by name (A)' );
|
|
is_deeply( $available_letters->[1],
|
|
$letters->[5], 'The letters should be sorted by name (B)' );
|
|
is_deeply( $available_letters->[2],
|
|
$letters->[3], 'The letters should be sorted by name (C)' );
|
|
|
|
$available_letters = C4::Letters::GetLettersAvailableForALibrary(
|
|
{ module => 'circulation', branchcode => 'MPL' } );
|
|
is( scalar(@$available_letters), 3,
|
|
'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"'
|
|
);
|
|
is_deeply( $available_letters->[0],
|
|
$letters->[2], 'The letters should be sorted by name (A)' );
|
|
is_deeply( $available_letters->[1],
|
|
$letters->[7], 'The letters should be sorted by name (B)' );
|
|
is_deeply( $available_letters->[2],
|
|
$letters->[3], 'The letters should be sorted by name (C)' );
|
|
|
|
my $letters_by_module = C4::Letters::GetLetters( { module => 'circulation' } );
|
|
is( scalar(@$letters_by_module),
|
|
3, '3 different letter codes exist for circulation' );
|
|
|
|
my $letters_by_branchcode = C4::Letters::GetLetters( { branchcode => 'CPL' } );
|
|
is( scalar(@$letters_by_branchcode),
|
|
2, '2 different letter codes exist for CPL' );
|
|
|
|
# On the way, we test DelLetter
|
|
is(
|
|
C4::Letters::DelLetter(
|
|
{ module => 'cataloguing', code => 'code1', branchcode => 'MPL' }
|
|
),
|
|
'0E0',
|
|
'No letter exist for MPL cat/code1'
|
|
);
|
|
is(
|
|
C4::Letters::DelLetter(
|
|
{ module => 'circulation', code => 'code1', branchcode => '' }
|
|
),
|
|
2,
|
|
'2 default letters existed for circ/code1 (1 for email and 1 for sms)'
|
|
);
|
|
is(
|
|
C4::Letters::DelLetter(
|
|
{
|
|
module => 'circulation',
|
|
code => 'code1',
|
|
branchcode => 'CPL',
|
|
mtt => 'email'
|
|
}
|
|
),
|
|
1,
|
|
'1 letter existed for CPL circ/code1/email'
|
|
);
|
|
is(
|
|
C4::Letters::DelLetter(
|
|
{ module => 'circulation', code => 'code1', branchcode => 'MPL' }
|
|
),
|
|
1,
|
|
'1 letter existed for MPL circ/code1'
|
|
);
|