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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
# --
# Copyright (C) 2001-2021 OTRS AG, https://otrs.com/
# 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 (GPL). If you
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --
use strict;
use warnings;
use utf8;
use vars (qw($Self));
#
# Tests for setting/changing date and time values of existing DateTime object
#
my %OriginalDateTimeValues = (
Year => 2016,
Month => 2,
Day => 29,
Hour => 14,
Minute => 46,
Second => 34,
TimeZone => 'Europe/Berlin',
);
my @TestConfigs = (
{
Name => '2017-02-28',
Params => {
Year => 2017,
Month => 2,
MonthAbbr => 'Feb',
Day => 28,
DayOfWeek => 2,
DayAbbr => 'Tue',
},
SuccessExpected => 1,
},
{
Name => '2013-12-28 12:59:04',
Params => {
Year => 2013,
Month => 12,
MonthAbbr => 'Dec',
Day => 28,
Hour => 12,
Minute => 59,
Second => 4,
DayOfWeek => 6,
DayAbbr => 'Sat',
},
SuccessExpected => 1,
},
{
Name => 'Invalid date 2017-02-29 12:59:04',
Params => {
Year => 2017,
Month => 2,
Day => 29,
Hour => 12,
Minute => 59,
Second => 4,
},
SuccessExpected => 0,
},
{
Name => 'No parameters',
Params => {
},
SuccessExpected => 0,
},
);
TESTCONFIG:
for my $TestConfig (@TestConfigs) {
my $DateTimeObject = $Kernel::OM->Create(
'Kernel::System::DateTime',
ObjectParams => \%OriginalDateTimeValues,
);
# Update date and time values
my $DateTimeSet = $DateTimeObject->Set( %{ $TestConfig->{Params} } );
$Self->Is(
$DateTimeSet ? 1 : 0,
$TestConfig->{SuccessExpected},
$TestConfig->{Name} . ': Setting date and time of DateTime object must '
. ( $TestConfig->{SuccessExpected} ? '' : 'not ' )
. 'succeed.',
);
next TESTCONFIG if !$DateTimeSet;
# Compare date and time with expected ones
my $DateTimeValues = $DateTimeObject->Get();
my $DateTimeValuesCorrect = 1;
KEY:
for my $Key ( sort keys %{$DateTimeValues} ) {
my $ExpectedValue;
if ( exists $TestConfig->{Params}->{$Key} ) {
$ExpectedValue = $TestConfig->{Params}->{$Key};
}
else {
$ExpectedValue = $OriginalDateTimeValues{$Key};
}
next KEY if $DateTimeValues->{$Key} eq $ExpectedValue;
$DateTimeValuesCorrect = 0;
last KEY;
}
$Self->Is(
$DateTimeValuesCorrect ? 1 : 0,
$TestConfig->{SuccessExpected},
$TestConfig->{Name}
. ': Set date and time must '
. ( $TestConfig->{SuccessExpected} ? '' : 'not ' )
. 'match expected ones.',
);
}
1;
|