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, |