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 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
# --
# 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));
# get command object
my $CommandObject = $Kernel::OM->Get('Kernel::System::Console::Command::Maint::Cache::Delete');
my ( $Result, $ExitCode );
my $HelperObject = $Kernel::OM->Get('Kernel::System::UnitTest::Helper');
# create cache object and disable inmemory caching to force
# the cache to read from file system
my $CacheObject = $Kernel::OM->Get('Kernel::System::Cache');
$CacheObject->Configure(
CacheInMemory => 0,
);
my $ObjectType = $HelperObject->GetRandomID();
my $ObjectKey = $HelperObject->GetRandomNumber();
# create dummy cache entry
my $CacheSet = $CacheObject->Set(
Type => $ObjectType,
Key => $ObjectKey,
Value => 'TestData',
);
$Self->Is(
$CacheSet,
1,
"Delete all - Cache set",
);
# delete all cache files
$ExitCode = $CommandObject->Execute();
$Self->Is(
$ExitCode,
0,
"Delete all - exit code",
);
# check if entry is gone
my $CacheGet = $CacheObject->Get(
Type => $ObjectType,
Key => $ObjectKey,
);
$Self->Is(
$CacheGet,
undef,
"Delete all - check if file is still present",
);
# create another dummy cache entry with TTL 1 day
$ObjectType = $HelperObject->GetRandomID();
$ObjectKey = $HelperObject->GetRandomNumber();
$CacheSet = $CacheObject->Set(
Type => $ObjectType,
Key => $ObjectKey,
Value => 'TestData',
TTL => 60 * 60 * 24,
);
$Self->Is(
$CacheSet,
1,
"Delete expired - Cache set",
);
# delete only expired cache files
$ExitCode = $CommandObject->Execute('--expired');
$Self->Is(
$ExitCode,
0,
"Delete expired - exit code",
);
# entry should be still there
$CacheGet = $CacheObject->Get(
Type => $ObjectType,
Key => $ObjectKey,
);
$Self->Is(
$CacheGet,
'TestData',
"Delete expired - check if file is still present",
);
# create another dummy cache entry with TTL 1 day
$ObjectType = $HelperObject->GetRandomID();
$ObjectKey = $HelperObject->GetRandomNumber();
$CacheSet = $CacheObject->Set(
Type => $ObjectType,
Key => $ObjectKey,
Value => 'TestData',
);
$Self->Is(
$CacheSet,
1,
"Delete only certain type - Cache set",
);
$CacheSet = $CacheObject->Set(
Type => $ObjectType . '_2',
Key => $ObjectKey,
Value => 'TestData',
);
$Self->Is(
$CacheSet,
1,
"Delete only certain type - Cache set (another type)",
);
# delete only expired cache files
$ExitCode = $CommandObject->Execute( '--type', $ObjectType );
$Self->Is(
$ExitCode,
0,
"Delete only certain type - exit code",
);
# 1st entry should be deleted
$CacheGet = $CacheObject->Get(
Type => $ObjectType,
Key => $ObjectKey,
);
$Self->Is(
$CacheGet,
undef,
"Delete only certain type - check if file is still present",
);
# 2nd entry should be still there
$CacheGet = $CacheObject->Get(
Type => $ObjectType . '_2',
Key => $ObjectKey,
);
$Self->Is(
$CacheGet,
'TestData',
"Delete only certain type - check if file is still present (another type)",
);
# finally delete all caches
$ExitCode = $CommandObject->Execute();
$Self->Is(
$ExitCode,
0,
"Delete all remaining caches",
);
1;
|