diff --git a/scripts/test/DynamicField/EditFieldValueGet.t b/scripts/test/DynamicField/EditFieldValueGet.t index a0c2bb3e9a..58a634fd1c 100644 --- a/scripts/test/DynamicField/EditFieldValueGet.t +++ b/scripts/test/DynamicField/EditFieldValueGet.t @@ -2,7 +2,7 @@ # OTOBO is a web-based ticketing system for service organisations. # -- # Copyright (C) 2001-2020 OTRS AG, https://otrs.com/ -# Copyright (C) 2019-2023 Rother OSS GmbH, https://otobo.de/ +# Copyright (C) 2019-2024 Rother OSS GmbH, https://otobo.de/ # -- # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software @@ -43,6 +43,7 @@ my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany'); my $CustomerUserObject = $Kernel::OM->Get('Kernel::System::CustomerUser'); my $DFBackendObject = $Kernel::OM->Get('Kernel::System::DynamicField::Backend'); +my $DynamicFieldObject = $Kernel::OM->Get('Kernel::System::DynamicField'); my $ParamObject = $Kernel::OM->Get('Kernel::System::Web::Request'); my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); my $UserObject = $Kernel::OM->Get('Kernel::System::User'); @@ -163,6 +164,83 @@ my $SecondReferenceTicketID = $TicketObject->TicketCreate( ); ok($SecondReferenceTicketID); +# prepare dynamic fields to include in set +my @IncludeDFConfigs = ( + + # Fields to include in SetOfAgentsAndTexts + { + Name => 'Text5' . $RandomID, + Label => 'Text5', + LabelEscaped => 'Text5', + FieldOrder => 123, + FieldType => 'Text', + ObjectType => 'Ticket', + Config => { + MultiValue => 0, + Tooltip => '', + }, + ValidID => 1, + UserID => $UserID, + }, + { + Name => 'Text6' . $RandomID, + Label => 'Text6', + LabelEscaped => 'Text6', + FieldOrder => 123, + FieldType => 'Text', + ObjectType => 'Ticket', + Config => { + MultiValue => 1, + Tooltip => '', + }, + ValidID => 1, + UserID => $UserID, + }, + { + Name => 'Agent1' . $RandomID, + Label => 'Agent1', + LabelEscaped => 'Agent1', + FieldOrder => 123, + FieldType => 'Agent', + ObjectType => 'Ticket', + Config => { + PossibleNone => 1, + Multiselect => 0, + MultiValue => 0, + GroupFilter => [], + Tooltip => '', + }, + ValidID => 1, + UserID => $UserID, + }, + { + Name => 'Agent2' . $RandomID, + Label => 'Agent2', + LabelEscaped => 'Agent2', + FieldOrder => 123, + FieldType => 'Agent', + ObjectType => 'Ticket', + Config => { + PossibleNone => 1, + Multiselect => 0, + MultiValue => 1, + GroupFilter => [], + Tooltip => '', + }, + ValidID => 1, + UserID => $UserID, + }, +); + +for my $IncludeDFConfig (@IncludeDFConfigs) { + + my $Success = $DynamicFieldObject->DynamicFieldAdd( + $IncludeDFConfig->%*, + ); + + ok( $Success, 'Creation of set-included dynamic field ' . $IncludeDFConfig->{Name} ); +} + # theres is not really needed to add the dynamic fields for this test, we can define a static # set of configurations my %DynamicFieldConfigs = ( @@ -512,6 +590,29 @@ my %DynamicFieldConfigs = ( CreateTime => '2023-02-08 15:08:00', ChangeTime => '2023-06-11 17:22:00', }, + SetOfAgentsAndTexts => { + ID => 123, + InternalField => 0, + Name => 'SetOfAgentsAndTexts', + Label => 'Set of agents and texts', + FieldOrder => 123, + FieldType => 'Set', + ObjectType => 'Ticket', + Config => { + MultiValue => 0, + Tooltip => '', + Include => [ + { DF => 'Text5' . $RandomID }, + { DF => 'Text6' . $RandomID }, + { DF => 'Agent1' . $RandomID }, + { DF => 'Agent2' . $RandomID }, + ], + }, + ValidID => 1, + UserID => $UserID, + CreateTime => '2023-02-08 15:08:00', + ChangeTime => '2023-06-11 17:22:00', + }, ); # define tests @@ -3767,6 +3868,60 @@ my @Tests = ( }, Success => 1, }, + + # Set + { + Name => 'Set: Correct value structure', + Config => { + DynamicFieldConfig => $DynamicFieldConfigs{SetOfAgentsAndTexts}, + Template => {}, + ParamObject => $ParamObject, + CGIParam => { + SetIndex_SetOfAgentsAndTexts => [ + [], + ], + 'DynamicField_Text5' . $RandomID . '_0' => 'Text3: 🏔 - U+1F3D4 - SNOW CAPPED MOUNTAIN', + 'DynamicField_Text6' . $RandomID . '_0' => [ + 'Text3: 🏔 - U+1F3D4 - SNOW CAPPED MOUNTAIN', + 'Text4: 🏔 - U+1F3D4 - SNOW CAPPED MOUNTAIN', + undef, + + ], + 'DynamicField_Agent1' . $RandomID . '_0' => $FirstUserID, + 'DynamicField_Agent2' . $RandomID . '_0' => [ + $FirstUserID, + $SecondUserID, + undef, + ], + }, + TransformDates => 0, + ReturnValueStructure => 0, + ReturnTemplateStructure => 1, + }, + ExpectedResults => [ + [ + { + 'DynamicField_Text5' . $RandomID . '_0' => 'Text3: 🏔 - U+1F3D4 - SNOW CAPPED MOUNTAIN' + }, + { + 'DynamicField_Text6' . $RandomID . '_0' => [ + 'Text3: 🏔 - U+1F3D4 - SNOW CAPPED MOUNTAIN', + 'Text4: 🏔 - U+1F3D4 - SNOW CAPPED MOUNTAIN', + ], + }, + { + 'DynamicField_Agent1' . $RandomID . '_0' => [$FirstUserID], + }, + { + 'DynamicField_Agent2' . $RandomID . '_0' => [ + $FirstUserID, + $SecondUserID, + ], + }, + ], + ], + Success => 1, + }, ); # execute tests