205 lines
6.4 KiB
PHP
205 lines
6.4 KiB
PHP
<?php
|
|
|
|
// require_once(DIR_ALVEOLATA . '/definitions.php');
|
|
require_once(DIR_ALVEOLATA . '/cache/functions.php');
|
|
|
|
|
|
\alveolata\test\add(
|
|
[
|
|
'name' => 'alveolata',
|
|
'sections' => [
|
|
[
|
|
'name' => 'cache',
|
|
'sections' => [
|
|
[
|
|
'name' => 'none',
|
|
'setup' => function (&$environment) {
|
|
$cache = \alveolata\cache\make('none', []);
|
|
\alveolata\cache\clear($cache);
|
|
$environment['cache'] = $cache;
|
|
},
|
|
'cleanup' => function (&$environment) {
|
|
},
|
|
'cases' => [
|
|
[
|
|
'name' => 'retrieve at first access',
|
|
'procedure' => function ($assert, $environment) {
|
|
// execution
|
|
$result = \alveolata\cache\get_with_info(
|
|
$environment['cache'],
|
|
'foo',
|
|
function () {
|
|
return 'fehuz';
|
|
}
|
|
);
|
|
|
|
// assertions
|
|
$assert->equal($result['fetched'], false);
|
|
$assert->equal($result['value'], 'fehuz');
|
|
}
|
|
],
|
|
[
|
|
'name' => 'retrieve at second access',
|
|
'procedure' => function ($assert, $environment) {
|
|
// consts
|
|
$id = 'bar';
|
|
$retrieve = function () {return 'uruz';};
|
|
|
|
// execution
|
|
$result1 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
$result2 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
|
|
// assertions
|
|
$assert->equal($result1['fetched'], false);
|
|
$assert->equal($result1['value'], 'uruz');
|
|
$assert->equal($result2['fetched'], false);
|
|
$assert->equal($result2['value'], 'uruz');
|
|
}
|
|
],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'memory',
|
|
'setup' => function (&$environment) {
|
|
$cache = \alveolata\cache\make('memory', []);
|
|
\alveolata\cache\clear($cache);
|
|
$environment['cache'] = $cache;
|
|
},
|
|
'cleanup' => function (&$environment) {
|
|
},
|
|
'cases' => [
|
|
[
|
|
'name' => 'retrieve at first access',
|
|
'procedure' => function ($assert, $environment) {
|
|
// execution
|
|
$result = \alveolata\cache\get_with_info(
|
|
$environment['cache'],
|
|
'foo',
|
|
function () {
|
|
return 'fehuz';
|
|
}
|
|
);
|
|
|
|
// assertions
|
|
$assert->equal($result['fetched'], false);
|
|
$assert->equal($result['value'], 'fehuz');
|
|
}
|
|
],
|
|
[
|
|
'name' => 'fetch at second access',
|
|
'procedure' => function ($assert, $environment) {
|
|
// consts
|
|
$id = 'bar';
|
|
$retrieve = function () {return 'uruz';};
|
|
|
|
// execution
|
|
$result1 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
$result2 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
|
|
// assertions
|
|
$assert->equal($result1['fetched'], false);
|
|
$assert->equal($result1['value'], 'uruz');
|
|
$assert->equal($result2['fetched'], true);
|
|
$assert->equal($result2['value'], 'uruz');
|
|
}
|
|
],
|
|
[
|
|
'name' => 'retrieve again after clear',
|
|
'procedure' => function ($assert, $environment) {
|
|
// consts
|
|
$id = 'baz';
|
|
$retrieve = function () {return 'thurisaz';};
|
|
|
|
// execution
|
|
$result1 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
$result2 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
\alveolata\cache\clear($environment['cache']);
|
|
$result3 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
|
|
// assertions
|
|
$assert->equal($result1['fetched'], false);
|
|
$assert->equal($result1['value'], 'thurisaz');
|
|
$assert->equal($result2['fetched'], true);
|
|
$assert->equal($result2['value'], 'thurisaz');
|
|
$assert->equal($result3['fetched'], false);
|
|
$assert->equal($result3['value'], 'thurisaz');
|
|
}
|
|
],
|
|
]
|
|
],
|
|
[
|
|
'name' => 'apc',
|
|
'active' => false,
|
|
'setup' => function (&$environment) {
|
|
$cache = \alveolata\cache\make('apc', []);
|
|
\alveolata\cache\clear($cache);
|
|
$environment['cache'] = $cache;
|
|
},
|
|
'cleanup' => function (&$environment) {
|
|
},
|
|
'cases' => [
|
|
[
|
|
'name' => 'retrieve at first access',
|
|
'procedure' => function ($assert, $environment) {
|
|
// execution
|
|
$result = \alveolata\cache\get_with_info(
|
|
$environment['cache'],
|
|
'foo',
|
|
function () {
|
|
return 'fehuz';
|
|
}
|
|
);
|
|
|
|
// assertions
|
|
$assert->equal($result['fetched'], false);
|
|
$assert->equal($result['value'], 'fehuz');
|
|
}
|
|
],
|
|
[
|
|
'name' => 'fetch at second access',
|
|
'procedure' => function ($assert, $environment) {
|
|
// consts
|
|
$id = 'bar';
|
|
$retrieve = function () {return 'uruz';};
|
|
|
|
// execution
|
|
$result1 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
$result2 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
|
|
// assertions
|
|
$assert->equal($result1['fetched'], false);
|
|
$assert->equal($result1['value'], 'uruz');
|
|
$assert->equal($result2['fetched'], true);
|
|
$assert->equal($result2['value'], 'uruz');
|
|
}
|
|
],
|
|
[
|
|
'name' => 'retrieve again after clear',
|
|
'procedure' => function ($assert, $environment) {
|
|
// consts
|
|
$id = 'baz';
|
|
$retrieve = function () {return 'thurisaz';};
|
|
|
|
// execution
|
|
$result1 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
$result2 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
\alveolata\cache\clear($environment['cache']);
|
|
$result3 = \alveolata\cache\get_with_info($environment['cache'], $id, $retrieve);
|
|
|
|
// assertions
|
|
$assert->equal($result1['fetched'], false);
|
|
$assert->equal($result1['value'], 'thurisaz');
|
|
$assert->equal($result2['fetched'], true);
|
|
$assert->equal($result2['value'], 'thurisaz');
|
|
$assert->equal($result3['fetched'], false);
|
|
$assert->equal($result3['value'], 'thurisaz');
|
|
}
|
|
],
|
|
]
|
|
],
|
|
],
|
|
]
|
|
]
|
|
]
|
|
);
|
|
|