Source
<?php
/*
** Copyright (C) 2001-2025 Zabbix SIA
**
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
**
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
**
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
**/
use PHPUnit\Framework\TestCase;
class CSimpleIntervalParserTest extends TestCase {
/**
* An array of simple intervals and parsed results.
*/
public static function dataProvider() {
return [
// success
[
'5', 0, [],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '5'
]
],
[
'10s', 0, [],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '10s'
]
],
[
'30m', 0, [],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '30m'
]
],
[
'604800', 0, [],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '604800'
]
],
[
'5h', 0, [],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '5h'
]
],
[
'3d', 0, [],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '3d'
]
],
[
'2w', 0, [],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '2w'
]
],
[
'3550w', 0, ['negative' => true],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '3550w'
]
],
[
'{$M}', 0, ['usermacros' => true],
[
'rc' => CParser::PARSE_SUCCESS,
'match' => '{$M}'
]
],
[
'{{$M}.regsub("^([0-9]+)", "{$M}: \1")}', 0, ['usermacros' => true],