You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4336 lines
104 KiB

<?php declare(strict_types = 0);
/*
** Zabbix
** Copyright (C) 2001-2023 Zabbix SIA
**
** 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 Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** 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 General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
require_once __DIR__.'/../include/CAPITest.php';
/**
* @backup services
*/
class testServices extends CAPITest {
public static function service_create_data_invalid(): array {
return [
[
'service' => [],
'expected_error' => 'Invalid parameter "/": cannot be empty.'
],
[
'service' => [null],
'expected_error' => 'Invalid parameter "/1": an array is expected.'
],
[
'service' => [true],
'expected_error' => 'Invalid parameter "/1": an array is expected.'
],
[
'service' => [0],
'expected_error' => 'Invalid parameter "/1": an array is expected.'
],
[
'service' => [''],
'expected_error' => 'Invalid parameter "/1": an array is expected.'
],
// Required fields.
[
'service' => [[]],
'expected_error' => 'Invalid parameter "/1": the parameter "name" is missing.'
],
[
'service' => [
'name' => null
],
'expected_error' => 'Invalid parameter "/1/name": a character string is expected.'
],
[
'service' => [
'name' => true
],
'expected_error' => 'Invalid parameter "/1/name": a character string is expected.'
],
[
'service' => [
'name' => 0
],
'expected_error' => 'Invalid parameter "/1/name": a character string is expected.'
],
[
'service' => [
'name' => []
],
'expected_error' => 'Invalid parameter "/1/name": a character string is expected.'
],
[
'service' => [
'name' => ''
],
'expected_error' => 'Invalid parameter "/1/name": cannot be empty.'
],
[
'service' => [
'name' => str_repeat('a', DB::getFieldLength('services', 'name') + 1)
],
'expected_error' => 'Invalid parameter "/1/name": value is too long.'
],
[
'service' => [
'name' => 'foo'
],
'expected_error' => 'Invalid parameter "/1": the parameter "algorithm" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => null
],
'expected_error' => 'Invalid parameter "/1/algorithm": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => true
],
'expected_error' => 'Invalid parameter "/1/algorithm": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => []
],
'expected_error' => 'Invalid parameter "/1/algorithm": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ''
],
'expected_error' => 'Invalid parameter "/1/algorithm": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => '1.0'
],
'expected_error' => 'Invalid parameter "/1/algorithm": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => -1
],
'expected_error' => 'Invalid parameter "/1/algorithm": value must be one of '.
implode(', ', [
ZBX_SERVICE_STATUS_CALC_SET_OK,
ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ALL,
ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ONE
]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => 999
],
'expected_error' => 'Invalid parameter "/1/algorithm": value must be one of '.
implode(', ', [
ZBX_SERVICE_STATUS_CALC_SET_OK,
ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ALL,
ZBX_SERVICE_STATUS_CALC_MOST_CRITICAL_ONE
]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK
],
'expected_error' => 'Invalid parameter "/1": the parameter "sortorder" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => null
],
'expected_error' => 'Invalid parameter "/1/sortorder": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => true
],
'expected_error' => 'Invalid parameter "/1/sortorder": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => []
],
'expected_error' => 'Invalid parameter "/1/sortorder": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => ''
],
'expected_error' => 'Invalid parameter "/1/sortorder": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => '1.0'
],
'expected_error' => 'Invalid parameter "/1/sortorder": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => -1
],
'expected_error' => 'Invalid parameter "/1/sortorder": value must be one of 0-999.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 9999
],
'expected_error' => 'Invalid parameter "/1/sortorder": value must be one of 0-999.'
],
// Optional fields.
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => null
],
'expected_error' => 'Invalid parameter "/1/weight": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => true
],
'expected_error' => 'Invalid parameter "/1/weight": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => []
],
'expected_error' => 'Invalid parameter "/1/weight": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => ''
],
'expected_error' => 'Invalid parameter "/1/weight": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => '1.0'
],
'expected_error' => 'Invalid parameter "/1/weight": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => -1
],
'expected_error' => 'Invalid parameter "/1/weight": value must be one of 0-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => 9999999
],
'expected_error' => 'Invalid parameter "/1/weight": value must be one of 0-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => null
],
'expected_error' => 'Invalid parameter "/1/propagation_rule": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => true
],
'expected_error' => 'Invalid parameter "/1/propagation_rule": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => []
],
'expected_error' => 'Invalid parameter "/1/propagation_rule": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ''
],
'expected_error' => 'Invalid parameter "/1/propagation_rule": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => '1.0'
],
'expected_error' => 'Invalid parameter "/1/propagation_rule": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => -1
],
'expected_error' => 'Invalid parameter "/1/propagation_rule": value must be one of '.
implode(', ', [
ZBX_SERVICE_STATUS_PROPAGATION_AS_IS,
ZBX_SERVICE_STATUS_PROPAGATION_INCREASE,
ZBX_SERVICE_STATUS_PROPAGATION_DECREASE,
ZBX_SERVICE_STATUS_PROPAGATION_IGNORE,
ZBX_SERVICE_STATUS_PROPAGATION_FIXED
]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => 999
],
'expected_error' => 'Invalid parameter "/1/propagation_rule": value must be one of '.
implode(', ', [
ZBX_SERVICE_STATUS_PROPAGATION_AS_IS,
ZBX_SERVICE_STATUS_PROPAGATION_INCREASE,
ZBX_SERVICE_STATUS_PROPAGATION_DECREASE,
ZBX_SERVICE_STATUS_PROPAGATION_IGNORE,
ZBX_SERVICE_STATUS_PROPAGATION_FIXED
]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_AS_IS
],
'expected_error' => 'Cannot specify "propagation_rule" parameter without specifying "propagation_value" parameter for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => null
],
'expected_error' => 'Invalid parameter "/1/propagation_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => true
],
'expected_error' => 'Invalid parameter "/1/propagation_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => []
],
'expected_error' => 'Invalid parameter "/1/propagation_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => ''
],
'expected_error' => 'Invalid parameter "/1/propagation_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => '1.0'
],
'expected_error' => 'Invalid parameter "/1/propagation_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => -1
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => 1
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => 999
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_value' => ZBX_MAX_INT32 + 1
],
'expected_error' => 'Invalid parameter "/1/propagation_value": a number is too large.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_INCREASE,
'propagation_value' => 0
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_INCREASE,
'propagation_value' => 999
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_DECREASE,
'propagation_value' => 0
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_DECREASE,
'propagation_value' => 999
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_IGNORE,
'propagation_value' => 999
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_FIXED,
'propagation_value' => -2
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'propagation_rule' => ZBX_SERVICE_STATUS_PROPAGATION_FIXED,
'propagation_value' => 999
],
'expected_error' => 'Incompatible "propagation_rule" and "propagation_value" parameters for service "foo".'
],
// Read-only fields.
[
'service' => [
'serviceid' => 1
],
'expected_error' => 'Invalid parameter "/1": unexpected parameter "serviceid".'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status' => ZBX_SEVERITY_OK
],
'expected_error' => 'Invalid parameter "/1": unexpected parameter "status".'
],
// Child services.
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => null
],
'expected_error' => 'Invalid parameter "/1/children": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => true
],
'expected_error' => 'Invalid parameter "/1/children": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => ''
],
'expected_error' => 'Invalid parameter "/1/children": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => -1
],
'expected_error' => 'Invalid parameter "/1/children": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => 999
],
'expected_error' => 'Invalid parameter "/1/children": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [null]
],
'expected_error' => 'Invalid parameter "/1/children/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [true]
],
'expected_error' => 'Invalid parameter "/1/children/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [0]
],
'expected_error' => 'Invalid parameter "/1/children/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => ['']
],
'expected_error' => 'Invalid parameter "/1/children/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
[]
]
],
'expected_error' => 'Invalid parameter "/1/children/1": the parameter "serviceid" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => null]
]
],
'expected_error' => 'Invalid parameter "/1/children/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => true]
]
],
'expected_error' => 'Invalid parameter "/1/children/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => []]
]
],
'expected_error' => 'Invalid parameter "/1/children/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => '']
]
],
'expected_error' => 'Invalid parameter "/1/children/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => '1.0']
]
],
'expected_error' => 'Invalid parameter "/1/children/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => -1]
]
],
'expected_error' => 'Invalid parameter "/1/children/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => 999] // Non-existing service.
]
],
'expected_error' => 'No permissions to referred object or it does not exist!'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => 2],
['serviceid' => 2]
]
],
'expected_error' => 'Invalid parameter "/1/children/2": value (serviceid)=(2) already exists.'
],
// Parent services.
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => null
],
'expected_error' => 'Invalid parameter "/1/parents": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => true
],
'expected_error' => 'Invalid parameter "/1/parents": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => ''
],
'expected_error' => 'Invalid parameter "/1/parents": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => -1
],
'expected_error' => 'Invalid parameter "/1/parents": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => 999
],
'expected_error' => 'Invalid parameter "/1/parents": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [null]
],
'expected_error' => 'Invalid parameter "/1/parents/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [true]
],
'expected_error' => 'Invalid parameter "/1/parents/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [0]
],
'expected_error' => 'Invalid parameter "/1/parents/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => ['']
],
'expected_error' => 'Invalid parameter "/1/parents/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
[]
]
],
'expected_error' => 'Invalid parameter "/1/parents/1": the parameter "serviceid" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => null]
]
],
'expected_error' => 'Invalid parameter "/1/children/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
['serviceid' => true]
]
],
'expected_error' => 'Invalid parameter "/1/parents/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
['serviceid' => []]
]
],
'expected_error' => 'Invalid parameter "/1/parents/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
['serviceid' => '']
]
],
'expected_error' => 'Invalid parameter "/1/parents/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
['serviceid' => '1.0']
]
],
'expected_error' => 'Invalid parameter "/1/parents/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
['serviceid' => -1]
]
],
'expected_error' => 'Invalid parameter "/1/parents/1/serviceid": a number is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
['serviceid' => 999] // Non-existing service.
]
],
'expected_error' => 'No permissions to referred object or it does not exist!'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'parents' => [
['serviceid' => 2],
['serviceid' => 2]
]
],
'expected_error' => 'Invalid parameter "/1/parents/2": value (serviceid)=(2) already exists.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'children' => [
['serviceid' => 2]
],
'parents' => [
['serviceid' => 2]
]
],
'expected_error' => 'Services form a circular dependency.'
],
// Tags.
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => null
],
'expected_error' => 'Invalid parameter "/1/tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => true
],
'expected_error' => 'Invalid parameter "/1/tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => 0
],
'expected_error' => 'Invalid parameter "/1/tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => ''
],
'expected_error' => 'Invalid parameter "/1/tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [null]
],
'expected_error' => 'Invalid parameter "/1/tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [true]
],
'expected_error' => 'Invalid parameter "/1/tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [1]
],
'expected_error' => 'Invalid parameter "/1/tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => ['']
],
'expected_error' => 'Invalid parameter "/1/tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
[]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1": the parameter "tag" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => null]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => true]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => []]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => 0]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => '']
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/tag": cannot be empty.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => str_repeat('a', DB::getFieldLength('service_tag', 'tag') + 1)]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/tag": value is too long.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => 'foo', 'value' => null]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => 'foo', 'value' => true]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => 'foo', 'value' => []]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => 'foo', 'value' => 0]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => 'foo', 'value' => str_repeat('a', DB::getFieldLength('service_tag', 'value') + 1)]
]
],
'expected_error' => 'Invalid parameter "/1/tags/1/value": value is too long.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['value' => '']
]
],
'expected_error' => 'Invalid parameter "/1/tags/1": the parameter "tag" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'tags' => [
['tag' => 'foo', 'value' => 'bar'],
['tag' => 'foo', 'value' => 'bar']
]
],
'expected_error' => 'Invalid parameter "/1/tags/2": value (tag, value)=(foo, bar) already exists.'
],
// Problem tags.
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => null
],
'expected_error' => 'Invalid parameter "/1/problem_tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => true
],
'expected_error' => 'Invalid parameter "/1/problem_tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => 0
],
'expected_error' => 'Invalid parameter "/1/problem_tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => ''
],
'expected_error' => 'Invalid parameter "/1/problem_tags": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [null]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [true]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [0]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => ['']
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
[]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1": the parameter "tag" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => null]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => true]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => []]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 0]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/tag": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => '']
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/tag": cannot be empty.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => str_repeat('a', DB::getFieldLength('service_tag', 'tag') + 1)]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/tag": value is too long.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => null]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/operator": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => true]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/operator": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => []]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/operator": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => '']
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/operator": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => '1.0']
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/operator": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => -1]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/operator": value must be one of '.
implode(', ', [ZBX_SERVICE_PROBLEM_TAG_OPERATOR_EQUAL, ZBX_SERVICE_PROBLEM_TAG_OPERATOR_LIKE]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => 999]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/operator": value must be one of '.
implode(', ', [ZBX_SERVICE_PROBLEM_TAG_OPERATOR_EQUAL, ZBX_SERVICE_PROBLEM_TAG_OPERATOR_LIKE]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'value' => null]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'value' => true]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'value' => []]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'value' => 0]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/value": a character string is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'value' => str_repeat('a', DB::getFieldLength('service_tag', 'value') + 1)]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1/value": value is too long.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['operator' => ZBX_SERVICE_PROBLEM_TAG_OPERATOR_EQUAL]
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1": the parameter "tag" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['value' => '']
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/1": the parameter "tag" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => ZBX_SERVICE_PROBLEM_TAG_OPERATOR_EQUAL, 'value' => 'bar'],
['tag' => 'foo', 'operator' => ZBX_SERVICE_PROBLEM_TAG_OPERATOR_EQUAL, 'value' => 'bar']
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/2": value (tag, value)=(foo, bar) already exists.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => ZBX_SERVICE_PROBLEM_TAG_OPERATOR_LIKE, 'value' => 'bar'],
['tag' => 'foo', 'operator' => ZBX_SERVICE_PROBLEM_TAG_OPERATOR_LIKE, 'value' => 'bar']
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/2": value (tag, value)=(foo, bar) already exists.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'problem_tags' => [
['tag' => 'foo', 'operator' => ZBX_SERVICE_PROBLEM_TAG_OPERATOR_EQUAL, 'value' => 'bar'],
['tag' => 'foo', 'operator' => ZBX_SERVICE_PROBLEM_TAG_OPERATOR_LIKE, 'value' => 'bar']
]
],
'expected_error' => 'Invalid parameter "/1/problem_tags/2": value (tag, value)=(foo, bar) already exists.'
],
// Status rules.
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => null
],
'expected_error' => 'Invalid parameter "/1/status_rules": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => true
],
'expected_error' => 'Invalid parameter "/1/status_rules": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => 0
],
'expected_error' => 'Invalid parameter "/1/status_rules": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => ''
],
'expected_error' => 'Invalid parameter "/1/status_rules": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [null]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [true]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [0]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => ['']
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": an array is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": the parameter "type" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => null]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/type": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => true]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/type": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => []]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/type": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => '']
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/type": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => '1.0']
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/type": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => -1]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/type": value must be one of '.
implode(', ', [
ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_NP_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_N_L,
ZBX_SERVICE_STATUS_RULE_TYPE_NP_L,
ZBX_SERVICE_STATUS_RULE_TYPE_W_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_WP_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_W_L,
ZBX_SERVICE_STATUS_RULE_TYPE_WP_L
]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => 999]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/type": value must be one of '.
implode(', ', [
ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_NP_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_N_L,
ZBX_SERVICE_STATUS_RULE_TYPE_NP_L,
ZBX_SERVICE_STATUS_RULE_TYPE_W_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_WP_GE,
ZBX_SERVICE_STATUS_RULE_TYPE_W_L,
ZBX_SERVICE_STATUS_RULE_TYPE_WP_L
]).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
['type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": the parameter "limit_value" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => null
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => true
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => []
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => ''
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => '1.0'
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1000001
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_L,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_L,
'limit_value' => 1000001
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_W_GE,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_W_GE,
'limit_value' => 1000001
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_W_L,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_W_L,
'limit_value' => 1000001
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-1000000.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_NP_GE,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_NP_GE,
'limit_value' => 101
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_NP_L,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_NP_L,
'limit_value' => 101
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_WP_GE,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_WP_GE,
'limit_value' => 101
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_WP_L,
'limit_value' => 0
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_WP_L,
'limit_value' => 101
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_value": value must be one of 1-100.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": the parameter "limit_status" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => null
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => true
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => []
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ''
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => '1.0'
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => -2
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_status": value must be one of '.
implode(', ', array_merge(
[ZBX_SEVERITY_OK],
range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)
)).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => TRIGGER_SEVERITY_COUNT
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/limit_status": value must be one of '.
implode(', ', array_merge(
[ZBX_SEVERITY_OK],
range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)
)).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1": the parameter "new_status" is missing.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => null
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/new_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => true
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/new_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => []
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/new_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => ''
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/new_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => '1.0'
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/new_status": an integer is expected.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => ZBX_SEVERITY_OK
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/new_status": value must be one of '.
implode(', ', range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => TRIGGER_SEVERITY_COUNT
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/1/new_status": value must be one of '.
implode(', ', range(TRIGGER_SEVERITY_NOT_CLASSIFIED, TRIGGER_SEVERITY_COUNT - 1)).'.'
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'status_rules' => [
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => TRIGGER_SEVERITY_NOT_CLASSIFIED
],
[
'type' => ZBX_SERVICE_STATUS_RULE_TYPE_N_GE,
'limit_value' => 1,
'limit_status' => ZBX_SEVERITY_OK,
'new_status' => TRIGGER_SEVERITY_NOT_CLASSIFIED
]
]
],
'expected_error' => 'Invalid parameter "/1/status_rules/2": value (type, limit_value, limit_status)=('.
ZBX_SERVICE_STATUS_RULE_TYPE_N_GE.', 1, '.ZBX_SEVERITY_OK.') already exists.'
]
];
}
public static function service_create_data_valid(): array {
return [
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0
],
'expected_error' => null
],
[
'service' => [
'name' => 'foo',
'algorithm' => ZBX_SERVICE_STATUS_CALC_SET_OK,
'sortorder' => 0,
'weight' => 0,
'propagation_rule' => 0,
'propagation_value' => 0,
'children' => [],
'parents' => [],
'tags' => [
['tag' => 'foo', 'value' => 'bar']
],
'problem_tags' => [
['tag' => 'foo', 'value' => 'bar']
],
'status_rules' => []
],
'expected_error' => null
]
];
}
/**
* @dataProvider service_create_data_invalid
* @dataProvider service_create_data_valid
*/
public function testServices_Create(array $services, ?string $expected_error): void {
$response = $this->call('service.create', $services, $expected_error);
if ($expected_error !== null) {
return;
}
// Accept single and multiple entities just like API method. Work with multi-dimensional array in result.
if (!array_key_exists(0, $services)) {
$services = zbx_toArray($services);
}
foreach ($response['result']['serviceids'] as $index => $serviceid) {
$db_service = CDBHelper::getRow(
'SELECT s.serviceid,s.name'.
' FROM services s'.
' WHERE s.serviceid='.zbx_dbstr($serviceid)
);
// Required fields.
$this->assertNotEmpty($db_service['name']);
$this->assertSame($db_service['name'], $services[$index]['name']);
}
}
public static function service_delete_data_invalid(): array {
return [
[
'service' => [null],
'expected_error' => 'Invalid parameter "/1": a number is expected.'
],
[
'service' => [true],
'expected_error' => 'Invalid parameter "/1": a number is expected.'
],
[
'service' => [[]],
'expected_error' => 'Invalid parameter "/1": a number is expected.'
],
[
'service' => [''],
'expected_error' => 'Invalid parameter "/1": a number is expected.'
],
[
'service' => ['1.0'],
'expected_error' => 'Invalid parameter "/1": a number is expected.'
],
[
'service' => [-1],
'expected_error' => 'Invalid parameter "/1": a number is expected.'
],
[
'service' => [999], // Non-existing service.
'expected_error' => 'No permissions to referred object or it does not exist!'
]
];
}
public static function service_delete_data_valid(): array {
return [
[
'service' => ['1'],
'expected_error' => null
]
];
}
/**
* @dataProvider service_delete_data_invalid
* @dataProvider service_delete_data_valid
*/
public function testServices_Delete(array $services, ?string $expected_error): void {
$response = $this->call('service.delete', $services, $expected_error);
if ($expected_error !== null) {
return;
}
foreach ($response['result']['serviceids'] as $serviceid) {
$this->assertEquals(0, CDBHelper::getCount(
'SELECT s.serviceid FROM services s WHERE s.serviceid='.zbx_dbstr($serviceid)
));
}
}
public static function service_get_data(): array {
return [
// Input validation.
[
'request' => [
'output' => [],
'serviceids' => true
],
'expected' => [
'error' => 'Invalid parameter "/serviceids": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'serviceids' => ''
],
'expected' => [
'error' => 'Invalid parameter "/serviceids": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'serviceids' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/serviceids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'serviceids' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/serviceids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'serviceids' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/serviceids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'serviceids' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/serviceids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'serviceids' => ['1.0']
],
'expected' => [
'error' => 'Invalid parameter "/serviceids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => [-1]
],
'expected' => [
'error' => 'Invalid parameter "/parentids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => true
],
'expected' => [
'error' => 'Invalid parameter "/parentids": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => ''
],
'expected' => [
'error' => 'Invalid parameter "/parentids": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/parentids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/parentids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/parentids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/parentids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => ['1.0']
],
'expected' => [
'error' => 'Invalid parameter "/parentids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'parentids' => [-1]
],
'expected' => [
'error' => 'Invalid parameter "/parentids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => true
],
'expected' => [
'error' => 'Invalid parameter "/childids": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => ''
],
'expected' => [
'error' => 'Invalid parameter "/childids": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/childids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/childids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/childids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/childids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => ['1.0']
],
'expected' => [
'error' => 'Invalid parameter "/childids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'childids' => [-1]
],
'expected' => [
'error' => 'Invalid parameter "/childids/1": a number is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'evaltype' => null
],
'expected' => [
'error' => 'Invalid parameter "/evaltype": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'evaltype' => true
],
'expected' => [
'error' => 'Invalid parameter "/evaltype": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'evaltype' => []
],
'expected' => [
'error' => 'Invalid parameter "/evaltype": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'evaltype' => ''
],
'expected' => [
'error' => 'Invalid parameter "/evaltype": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'evaltype' => '1.0'
],
'expected' => [
'error' => 'Invalid parameter "/evaltype": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'evaltype' => 1
],
'expected' => [
'error' => 'Invalid parameter "/evaltype": value must be one of '.
implode(', ', [TAG_EVAL_TYPE_AND_OR, TAG_EVAL_TYPE_OR]).'.',
'result' => []
]
],
[
'request' => [
'output' => [],
'evaltype' => 999
],
'expected' => [
'error' => 'Invalid parameter "/evaltype": value must be one of '.
implode(', ', [TAG_EVAL_TYPE_AND_OR, TAG_EVAL_TYPE_OR]).'.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => null
],
'expected' => [
'error' => 'Invalid parameter "/tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => true
],
'expected' => [
'error' => 'Invalid parameter "/tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => ''
],
'expected' => [
'error' => 'Invalid parameter "/tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => 0
],
'expected' => [
'error' => 'Invalid parameter "/tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => ['tag' => 'foo']
],
'expected' => [
'error' => 'Invalid parameter "/tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1": the parameter "tag" is missing.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag']
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1": unexpected parameter "0".',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => null]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => true]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => []]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => 0]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'value' => null]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'value' => true]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'value' => []]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'value' => 0]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'operator' => null]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'operator' => true]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'operator' => []]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'operator' => '']
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'operator' => '1.0']
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'operator' => -1]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/operator": value must be one of '.
implode(', ', [
TAG_OPERATOR_LIKE,
TAG_OPERATOR_EQUAL,
TAG_OPERATOR_NOT_LIKE,
TAG_OPERATOR_NOT_EQUAL,
TAG_OPERATOR_EXISTS,
TAG_OPERATOR_NOT_EXISTS
]).'.',
'result' => []
]
],
[
'request' => [
'output' => [],
'tags' => [
['tag' => '', 'operator' => 999]
]
],
'expected' => [
'error' => 'Invalid parameter "/tags/1/operator": value must be one of '.
implode(', ', [
TAG_OPERATOR_LIKE,
TAG_OPERATOR_EQUAL,
TAG_OPERATOR_NOT_LIKE,
TAG_OPERATOR_NOT_EQUAL,
TAG_OPERATOR_EXISTS,
TAG_OPERATOR_NOT_EXISTS
]).'.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => null
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => true
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => ''
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => 0
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => ['tag' => 'foo']
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1": the parameter "tag" is missing.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag']
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1": unexpected parameter "0".',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => null]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => true]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => []]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => 0]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/tag": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'value' => null]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'value' => true]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'value' => []]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'value' => 0]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/value": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'operator' => null]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'operator' => true]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'operator' => []]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'operator' => '']
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'operator' => '1.0']
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/operator": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'operator' => -1]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/operator": value must be one of '.
implode(', ', [
TAG_OPERATOR_LIKE,
TAG_OPERATOR_EQUAL,
TAG_OPERATOR_NOT_LIKE,
TAG_OPERATOR_NOT_EQUAL,
TAG_OPERATOR_EXISTS,
TAG_OPERATOR_NOT_EXISTS
]).'.',
'result' => []
]
],
[
'request' => [
'output' => [],
'problem_tags' => [
['tag' => '', 'operator' => 999]
]
],
'expected' => [
'error' => 'Invalid parameter "/problem_tags/1/operator": value must be one of '.
implode(', ', [
TAG_OPERATOR_LIKE,
TAG_OPERATOR_EQUAL,
TAG_OPERATOR_NOT_LIKE,
TAG_OPERATOR_NOT_EQUAL,
TAG_OPERATOR_EXISTS,
TAG_OPERATOR_NOT_EXISTS
]).'.',
'result' => []
]
],
// Input validation, filter object.
[
'request' => [
'output' => [],
'filter' => [
'serviceid' => ''
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'serviceid' => [null]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/serviceid/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'serviceid' => [true]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/serviceid/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'serviceid' => [[]]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/serviceid/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'serviceid' => ['']
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'serviceid' => ['1.0']
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'serviceid' => [-1]
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'name' => true
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/name": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'name' => 0
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'name' => [null]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/name/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'name' => [true]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/name/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'name' => [[]]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/name/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'name' => [0]
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => true
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/status": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => ''
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => '1.0'
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => -2
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => TRIGGER_SEVERITY_COUNT
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => [true]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/status/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => ['']
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => ['1.0']
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => [-2]
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'status' => [TRIGGER_SEVERITY_COUNT]
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => true
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/algorithm": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => ''
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => '1.0'
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => -1
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => [null]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/algorithm/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => [true]
]
],
'expected' => [
'error' => 'Invalid parameter "/filter/algorithm/1": a character string, integer or floating point value is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => ['']
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => ['1.0']
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => [-1]
]
],
'expected' => [
'error' => null,
'result' => []
]
],
[
'request' => [
'output' => [],
'filter' => [
'algorithm' => [999]
]
],
'expected' => [
'error' => null,
'result' => []
]
],
// Related objects.
[
'request' => [
'output' => [],
'selectStatusTimeline' => true
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => 0
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => ''
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1": the parameter "period_from" is missing.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1": an array is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [['period_from' => 1638316800]]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1": the parameter "period_to" is missing.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [
[
'period_from' => 'yesterday',
'period_to' => 1638316900
]
]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1/period_from": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [
[
'period_from' => 1638316800,
'period_to' => 'today'
]
]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1/period_to": an integer is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [
[
'period_from' => 9638316800,
'period_to' => 9638316900
]
]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1/period_from": a number is too large.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusTimeline' => [
[
'period_from' => 1638316800,
'period_to' => 9638316900
]
]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusTimeline/1/period_to": a number is too large.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => true
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => 0
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => ''
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren": value must be one of "extend", "count".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectChildren' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/selectChildren/1": value must be one of "serviceid", "uuid", "name", "status", "algorithm", "sortorder", "weight", "propagation_rule", "propagation_value", "description", "created_at", "readonly".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => true
],
'expected' => [
'error' => 'Invalid parameter "/selectParents": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => 0
],
'expected' => [
'error' => 'Invalid parameter "/selectParents": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => ''
],
'expected' => [
'error' => 'Invalid parameter "/selectParents": value must be one of "extend", "count".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/selectParents/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/selectParents/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/selectParents/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/selectParents/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectParents' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/selectParents/1": value must be one of "serviceid", "uuid", "name", "status", "algorithm", "sortorder", "weight", "propagation_rule", "propagation_value", "description", "created_at", "readonly".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => true
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => 0
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => ''
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags": value must be one of "extend", "count".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectProblemTags' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/selectProblemTags/1": value must be one of "tag", "operator", "value".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => true
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => 0
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => ''
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules": value must be one of "extend", "count".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectStatusRules' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/selectStatusRules/1": value must be one of "type", "limit_value", "limit_status", "new_status".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => true
],
'expected' => [
'error' => 'Invalid parameter "/selectTags": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => 0
],
'expected' => [
'error' => 'Invalid parameter "/selectTags": an array or a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => ''
],
'expected' => [
'error' => 'Invalid parameter "/selectTags": value must be one of "extend", "count".',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => [null]
],
'expected' => [
'error' => 'Invalid parameter "/selectTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => [true]
],
'expected' => [
'error' => 'Invalid parameter "/selectTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => [0]
],
'expected' => [
'error' => 'Invalid parameter "/selectTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => [[]]
],
'expected' => [
'error' => 'Invalid parameter "/selectTags/1": a character string is expected.',
'result' => []
]
],
[
'request' => [
'output' => [],
'selectTags' => ['']
],
'expected' => [
'error' => 'Invalid parameter "/selectTags/1": value must be one of "tag", "value".',
'result' => []
]
]
];
}
/**
* @dataProvider service_get_data
*/
public function testServices_Get(array $request, array $expected): void {
$response = $this->call('service.get', $request, $expected['error']);
if ($expected['error'] !== null) {
return;
}
$this->assertEquals($response['result'], $expected['result']);
}
public static function service_update_data_invalid(): array {
return [
[
'service' => [[
'name' => 'foo'
]],
'expected_error' => 'Invalid parameter "/1": the parameter "serviceid" is missing.'
]
];
}
public static function service_update_data_valid(): array {
return [
[
'service' => [[
'serviceid' => 2
]],
'expected_error' => null
],
[
'service' => [[
'serviceid' => 2,
'name' => 'bar'
]],
'expected_error' => null
]
];
}
/**
* @dataProvider service_update_data_invalid
* @dataProvider service_update_data_valid
*/
public function testServices_Update(array $services, ?string $expected_error): void {
$response = $this->call('service.update', $services, $expected_error);
if ($expected_error !== null) {
return;
}
$db_services = CDBHelper::getAll(
'SELECT s.serviceid,s.name,s.status,s.algorithm,s.sortorder,s.weight,s.propagation_rule,s.propagation_value'.
' FROM services s'.
' WHERE '.dbConditionId('s.serviceid', $response['result']['serviceids']).
' ORDER BY s.serviceid ASC'
);
foreach ($db_services as $index => $db_service) {
$service = $services[$index];
if (array_key_exists('name', $service)) {
$this->assertEquals($service['name'], $db_service['name']);
}
}
}
}