1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
# --
# Copyright (C) 2021 Znuny GmbH, https://znuny.org/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
use strict;
use warnings;
use utf8;
use vars (qw($Self));
use parent qw(Kernel::System::EventHandler);
$Kernel::OM->ObjectParamAdd(
'Kernel::System::UnitTest::Helper' => {
RestoreDatabase => 1,
},
);
my $HelperObject = $Kernel::OM->Get('Kernel::System::UnitTest::Helper');
my $ConfigObject = $Kernel::OM->Get('Kernel::Config');
my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket');
my $UserID = 1;
#
# Test non-process tickets
#
ARTICLECOUNT:
for my $ArticleCount ( 0 .. 2 ) {
my $NonProcessTicketID = $HelperObject->TicketCreate();
for ( 1 .. $ArticleCount ) {
$HelperObject->ArticleCreate(
TicketID => $NonProcessTicketID,
);
}
my $EventModule = $Kernel::OM->Get('Kernel::System::Ticket::Event::NotifyOnEmptyProcessTickets');
$EventModule->Run(
Event => 'TicketCreate',
UserID => $UserID,
Data => {
TicketID => $NonProcessTicketID,
},
Config => {
NotRelevantForTest => 1,
},
);
my $ExpectedEventTriggered = $EventModule->{NotificationNewTicketEventTriggered};
$Self->False(
scalar $ExpectedEventTriggered,
"Event 'NotificationNewTicket' must not be triggered for non-process ticket with $ArticleCount article(s).",
);
}
#
# Test process tickets
#
my $DynamicFieldNameProcessManagementProcessID = $ConfigObject->Get('Process::DynamicFieldProcessManagementProcessID')
// 'ProcessManagementProcessID';
ARTICLECOUNT:
for my $ArticleCount ( 0 .. 2 ) {
my $ProcessTicketID = $HelperObject->TicketCreate();
$HelperObject->DynamicFieldSet(
Field => $DynamicFieldNameProcessManagementProcessID,
ObjectID => $ProcessTicketID,
Value => '999',
);
for ( 1 .. $ArticleCount ) {
$HelperObject->ArticleCreate(
TicketID => $ProcessTicketID,
);
}
my $EventModule = $Kernel::OM->Get('Kernel::System::Ticket::Event::NotifyOnEmptyProcessTickets');
$EventModule->Run(
Event => 'TicketCreate',
UserID => $UserID,
Data => {
TicketID => $ProcessTicketID,
},
Config => {
NotRelevantForTest => 1,
},
);
my $ExpectedEventTriggered = $EventModule->{NotificationNewTicketEventTriggered};
if ($ArticleCount) {
$Self->False(
scalar $ExpectedEventTriggered,
"Event 'NotificationNewTicket' must not be triggered for process ticket with $ArticleCount article(s).",
);
next ARTICLECOUNT;
}
$Self->True(
scalar $ExpectedEventTriggered,
"Event 'NotificationNewTicket' must be triggered for process ticket with $ArticleCount article(s).",
);
}
1;
|