Bug 34731: Throw exception if SendQueuedMessages is passed a bad message_id

Test Plan:
1) Apply this patch
2) prove t/db_dependent/Letters.t

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
This commit is contained in:
Kyle M Hall 2023-09-07 11:04:32 -04:00 committed by Matt Blenkinsop
parent 1392fbe90f
commit 868af0015f
2 changed files with 25 additions and 4 deletions

View File

@ -25,18 +25,20 @@ use Module::Load::Conditional qw( can_load );
use Try::Tiny;
use C4::Members;
use C4::Log qw( logaction );
use C4::Members;
use C4::SMS;
use C4::Templates;
use Koha::SMS::Providers;
use Koha::Auth::TwoFactorAuth;
use Koha::DateUtils qw( dt_from_string output_pref );
use Koha::Email;
use Koha::Exceptions;
use Koha::Notice::Messages;
use Koha::Notice::Templates;
use Koha::DateUtils qw( dt_from_string output_pref );
use Koha::Auth::TwoFactorAuth;
use Koha::Patrons;
use Koha::SMS::Providers;
use Koha::SMTP::Servers;
use Koha::Subscriptions;
@ -973,6 +975,9 @@ Returns number of messages sent.
sub SendQueuedMessages {
my $params = shift;
Koha::Exceptions::BadParameter->throw("Parameter message_id cannot be empty if passed.")
if ( exists( $params->{message_id} ) && !$params->{message_id} );
my $which_unsent_messages = {
'message_id' => $params->{'message_id'},
'limit' => $params->{'limit'} // 0,

View File

@ -18,7 +18,7 @@
# along with Koha; if not, see <http://www.gnu.org/licenses>.
use Modern::Perl;
use Test::More tests => 89;
use Test::More tests => 92;
use Test::MockModule;
use Test::Warn;
use Test::Exception;
@ -153,6 +153,22 @@ my $yesterday = dt_from_string->subtract( days => 1 );
Koha::Notice::Messages->find($messages->[0]->{message_id})->time_queued($yesterday)->store;
# SendQueuedMessages
throws_ok {
C4::Letters::SendQueuedMessages( { message_id => undef } );
}
'Koha::Exceptions::BadParameter', 'Undef message_id throws an exception';
throws_ok {
C4::Letters::SendQueuedMessages( { message_id => 0 } );
}
'Koha::Exceptions::BadParameter', 'message_id of 0 throws an exception';
throws_ok {
C4::Letters::SendQueuedMessages( { message_id => q{} } );
}
'Koha::Exceptions::BadParameter', 'Empty string message_id throws an exception';
my $messages_processed = C4::Letters::SendQueuedMessages( { type => 'email' });
is($messages_processed, 0, 'No queued messages processed if type limit passed with unused type');
$messages_processed = C4::Letters::SendQueuedMessages( { type => 'sms' });