|
Lines 18-24
Link Here
|
| 18 |
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
18 |
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
| 19 |
|
19 |
|
| 20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
| 21 |
use Test::More tests => 76; |
21 |
use Test::More tests => 82; |
| 22 |
use Test::MockModule; |
22 |
use Test::MockModule; |
| 23 |
use Test::Warn; |
23 |
use Test::Warn; |
| 24 |
|
24 |
|
|
Lines 64-69
my $library = $builder->build({
Link Here
|
| 64 |
}); |
64 |
}); |
| 65 |
my $patron_category = $builder->build({ source => 'Category' })->{categorycode}; |
65 |
my $patron_category = $builder->build({ source => 'Category' })->{categorycode}; |
| 66 |
my $date = dt_from_string; |
66 |
my $date = dt_from_string; |
|
|
67 |
my ( $email, $emailpro ) = ( 'email@example.org', 'emailpro@example.org' ); |
| 67 |
my $borrowernumber = AddMember( |
68 |
my $borrowernumber = AddMember( |
| 68 |
firstname => 'Jane', |
69 |
firstname => 'Jane', |
| 69 |
surname => 'Smith', |
70 |
surname => 'Smith', |
|
Lines 71-76
my $borrowernumber = AddMember(
Link Here
|
| 71 |
branchcode => $library->{branchcode}, |
72 |
branchcode => $library->{branchcode}, |
| 72 |
dateofbirth => $date, |
73 |
dateofbirth => $date, |
| 73 |
smsalertnumber => undef, |
74 |
smsalertnumber => undef, |
|
|
75 |
email => $email, |
| 76 |
emailpro => $emailpro, |
| 74 |
); |
77 |
); |
| 75 |
|
78 |
|
| 76 |
my $marc_record = MARC::Record->new; |
79 |
my $marc_record = MARC::Record->new; |
|
Lines 98-105
my $my_message = {
Link Here
|
| 98 |
to_address => undef, |
101 |
to_address => undef, |
| 99 |
from_address => 'from@example.com', |
102 |
from_address => 'from@example.com', |
| 100 |
}; |
103 |
}; |
| 101 |
my $message_id = C4::Letters::EnqueueLetter($my_message); |
104 |
is( C4::Letters::EnqueueLetter($my_message), undef, 'EnqueueLetter without the letter argument returns undef' ); |
| 102 |
is( $message_id, undef, 'EnqueueLetter without the letter argument returns undef' ); |
|
|
| 103 |
|
105 |
|
| 104 |
delete $my_message->{message_transport_type}; |
106 |
delete $my_message->{message_transport_type}; |
| 105 |
$my_message->{letter} = { |
107 |
$my_message->{letter} = { |
|
Lines 109-121
$my_message->{letter} = {
Link Here
|
| 109 |
code => 'TEST_MESSAGE', |
111 |
code => 'TEST_MESSAGE', |
| 110 |
content_type => 'text/plain', |
112 |
content_type => 'text/plain', |
| 111 |
}; |
113 |
}; |
| 112 |
$message_id = C4::Letters::EnqueueLetter($my_message); |
114 |
is( C4::Letters::EnqueueLetter($my_message), undef, 'EnqueueLetter without the message_transport_type argument returns undef' ); |
| 113 |
is( $message_id, undef, 'EnqueueLetter without the message type argument argument returns undef' ); |
|
|
| 114 |
|
115 |
|
| 115 |
$my_message->{message_transport_type} = 'sms'; |
116 |
$my_message->{message_transport_type} = 'sms'; |
| 116 |
$message_id = C4::Letters::EnqueueLetter($my_message); |
117 |
my $messages_queued = C4::Letters::EnqueueLetter($my_message); |
| 117 |
ok(defined $message_id && $message_id > 0, 'new message successfully queued'); |
118 |
is($messages_queued, 1, 'new message successfully queued'); |
| 118 |
|
|
|
| 119 |
|
119 |
|
| 120 |
# GetQueuedMessages |
120 |
# GetQueuedMessages |
| 121 |
my $messages = C4::Letters::GetQueuedMessages(); |
121 |
my $messages = C4::Letters::GetQueuedMessages(); |
|
Lines 123-129
is( @$messages, 1, 'GetQueuedMessages without argument returns all the entries'
Link Here
|
| 123 |
|
123 |
|
| 124 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
124 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
| 125 |
is( @$messages, 1, 'one message stored for the borrower' ); |
125 |
is( @$messages, 1, 'one message stored for the borrower' ); |
| 126 |
is( $messages->[0]->{message_id}, $message_id, 'EnqueueLetter returns the message id correctly' ); |
|
|
| 127 |
is( $messages->[0]->{borrowernumber}, $borrowernumber, 'EnqueueLetter stores the borrower number correctly' ); |
126 |
is( $messages->[0]->{borrowernumber}, $borrowernumber, 'EnqueueLetter stores the borrower number correctly' ); |
| 128 |
is( $messages->[0]->{subject}, $my_message->{letter}->{title}, 'EnqueueLetter stores the subject correctly' ); |
127 |
is( $messages->[0]->{subject}, $my_message->{letter}->{title}, 'EnqueueLetter stores the subject correctly' ); |
| 129 |
is( $messages->[0]->{content}, $my_message->{letter}->{content}, 'EnqueueLetter stores the content correctly' ); |
128 |
is( $messages->[0]->{content}, $my_message->{letter}->{content}, 'EnqueueLetter stores the content correctly' ); |
|
Lines 485-490
is($mail{'To'}, 'testemail@mydomain.com', "mailto correct in sent claim");
Link Here
|
| 485 |
is($mail{'Message'}, 'my vendor|John Smith|Ordernumber ' . $ordernumber . ' (Silence in the library) (1 ordered)', 'Claim notice text constructed successfully'); |
484 |
is($mail{'Message'}, 'my vendor|John Smith|Ordernumber ' . $ordernumber . ' (Silence in the library) (1 ordered)', 'Claim notice text constructed successfully'); |
| 486 |
} |
485 |
} |
| 487 |
|
486 |
|
|
|
487 |
# EnqueueLetter and AutoEmailPrimaryAddress |
| 488 |
$my_message = { |
| 489 |
borrowernumber => $borrowernumber, |
| 490 |
message_transport_type => 'email', |
| 491 |
to_address => 'to@example.com', |
| 492 |
from_address => 'from@example.com', |
| 493 |
letter => { |
| 494 |
content => 'a message', |
| 495 |
title => 'message title', |
| 496 |
metadata => 'metadata', |
| 497 |
code => 'TEST_MESSAGE', |
| 498 |
content_type => 'text/plain', |
| 499 |
}, |
| 500 |
}; |
| 501 |
|
| 502 |
$dbh->do(q|DELETE FROM message_queue|); |
| 503 |
t::lib::Mocks::mock_preference('AutoEmailPrimaryAddress', 'email'); |
| 504 |
is( C4::Letters::EnqueueLetter($my_message), 1, 'message successfully queued' ); |
| 505 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
| 506 |
is( scalar( @$messages ), 1, 'The message has been queued for the expected patron' ); |
| 507 |
is( $messages->[0]{to_address}, 'to@example.com', 'AutoEmailPrimaryAddress=email, EnqueueLetter used the to_address given in parameter' ); |
| 508 |
|
| 509 |
$dbh->do(q|DELETE FROM message_queue|); |
| 510 |
delete $my_message->{to_address}; |
| 511 |
is( C4::Letters::EnqueueLetter($my_message), 1, 'message successfully queued' ); |
| 512 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
| 513 |
is( scalar( @$messages ), 1, 'The message has been queued for the expected patron' ); |
| 514 |
is( $messages->[0]{to_address}, $email, 'AutoEmailPrimaryAddress=email, EnqueueLetter used the patron email address if no to_address is given in parameter' ); |
| 515 |
|
| 516 |
$dbh->do(q|DELETE FROM message_queue|); |
| 517 |
t::lib::Mocks::mock_preference('AutoEmailPrimaryAddress', 'emailpro'); |
| 518 |
is( C4::Letters::EnqueueLetter($my_message), 1, 'message successfully queued' ); |
| 519 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
| 520 |
is( scalar( @$messages ), 1, 'The message has been queued for the expected patron' ); |
| 521 |
is( $messages->[0]{to_address}, $emailpro, 'AutoEmailPrimaryAddress=emailpro, EnqueueLetter used the patron emailpro address if no to_address is given in parameter' ); |
| 522 |
|
| 523 |
$dbh->do(q|DELETE FROM message_queue|); |
| 524 |
t::lib::Mocks::mock_preference('AutoEmailPrimaryAddress', 'OFF'); |
| 525 |
is( C4::Letters::EnqueueLetter($my_message), 1, 'message successfully queued' ); |
| 526 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
| 527 |
is( scalar( @$messages ), 1, 'The message has been queued for the expected patron' ); |
| 528 |
is( $messages->[0]{to_address}, $email, 'AutoEmailPrimaryAddress=OFF, EnqueueLetter used the patron email address if no to_address is given in parameter' ); |
| 529 |
|
| 530 |
$dbh->do(q|DELETE FROM message_queue|); |
| 531 |
t::lib::Mocks::mock_preference('AutoEmailPrimaryAddress', 'email|OFF|emailpro'); # This is no consistent. OFF should be alone. |
| 532 |
is( C4::Letters::EnqueueLetter($my_message), 1, 'message successfully queued' ); |
| 533 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
| 534 |
is( scalar( @$messages ), 1, 'The message has been queued for the expected patron' ); |
| 535 |
is( $messages->[0]{to_address}, $email, 'AutoEmailPrimaryAddress=email|OFF|emailpro, EnqueueLetter used the patron email address if no to_address is given in parameter' ); |
| 536 |
|
| 537 |
$dbh->do(q|DELETE FROM message_queue|); |
| 538 |
t::lib::Mocks::mock_preference('AutoEmailPrimaryAddress', 'email|emailpro'); |
| 539 |
is( C4::Letters::EnqueueLetter($my_message), 2, 'messages successfully queued' ); |
| 540 |
$messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); |
| 541 |
is( scalar( @$messages ), 2, 'The messages have been queued for the expected patron' ); |
| 542 |
is( $messages->[0]{to_address}, $email, 'AutoEmailPrimaryAddress=email|emailpro, EnqueueLetter used the patron email address for the first letter' ); |
| 543 |
is( $messages->[1]{to_address}, $emailpro, 'AutoEmailPrimaryAddress=email|emailpro, EnqueueLetter used the patron emailpro address for the second letter' ); |
| 544 |
|
| 488 |
{ |
545 |
{ |
| 489 |
use C4::Serials; |
546 |
use C4::Serials; |
| 490 |
|
547 |
|
|
Lines 645-651
subtest 'SendQueuedMessages' => sub {
Link Here
|
| 645 |
|
702 |
|
| 646 |
my $sms_pro = $builder->build_object({ class => 'Koha::SMS::Providers', value => { domain => 'kidclamp.rocks' } }); |
703 |
my $sms_pro = $builder->build_object({ class => 'Koha::SMS::Providers', value => { domain => 'kidclamp.rocks' } }); |
| 647 |
ModMember( borrowernumber => $borrowernumber, smsalertnumber => '5555555555', sms_provider_id => $sms_pro->id() ); |
704 |
ModMember( borrowernumber => $borrowernumber, smsalertnumber => '5555555555', sms_provider_id => $sms_pro->id() ); |
| 648 |
$message_id = C4::Letters::EnqueueLetter($my_message); #using datas set around line 95 and forward |
705 |
C4::Letters::EnqueueLetter($my_message); #using datas set around line 95 and forward |
| 649 |
C4::Letters::SendQueuedMessages(); |
706 |
C4::Letters::SendQueuedMessages(); |
| 650 |
my $sms_message_address = $schema->resultset('MessageQueue')->search({ |
707 |
my $sms_message_address = $schema->resultset('MessageQueue')->search({ |
| 651 |
borrowernumber => $borrowernumber, |
708 |
borrowernumber => $borrowernumber, |