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.
1768 lines
39 KiB
1768 lines
39 KiB
<?php
|
|
/*
|
|
** 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 dirname(__FILE__).'/../include/CAPITest.php';
|
|
|
|
/**
|
|
* @backup maintenances
|
|
*/
|
|
class testMaintenance extends CAPITest {
|
|
public static function getMaintenanceCreateData() {
|
|
$n = 0;
|
|
$def_options = [
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [['groupid' => '2']],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'every' => 1,
|
|
'dayofweek' => 64,
|
|
'start_time' => 3600,
|
|
'period' => 7200
|
|
]
|
|
]
|
|
];
|
|
|
|
return [
|
|
// Success. Created maintenance without tags.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance without tags.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => []
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with one tag.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
'tag' => 'tag'
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with one tag.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with one tag.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 0
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with one tag with empty value.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 0,
|
|
'value' => ''
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with one tag.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 0,
|
|
'value' => 'value'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with multiple tags.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag1',
|
|
'operator' => 0,
|
|
'value' => 'value1'
|
|
],
|
|
[
|
|
'tag' => 'tag2',
|
|
'operator' => 2,
|
|
'value' => 'value2'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with multiple tags having the same tag name.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag'
|
|
],
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 0,
|
|
'value' => 'value'
|
|
],
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 2,
|
|
'value' => 'value'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with multiple tags.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag'
|
|
],
|
|
[
|
|
'tag' => 'tag1'
|
|
],
|
|
[
|
|
'tag' => 'tag2',
|
|
'value' => 'value'
|
|
],
|
|
[
|
|
'tag' => 'tag3',
|
|
'operator' => 2,
|
|
'value' => 'value'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Fail. Duplicate tags are not allowed.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag'
|
|
],
|
|
[
|
|
'tag' => 'tag'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/2": value (tag, operator, value)=(tag, 2, ) already exists.'
|
|
],
|
|
// Fail. Duplicate tags are not allowed.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'value' => 'value'
|
|
],
|
|
[
|
|
'tag' => 'tag',
|
|
'value' => 'value'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/2": value (tag, operator, value)=(tag, 2, value) already exists.'
|
|
],
|
|
// Fail. Duplicate tags are not allowed.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 0,
|
|
'value' => 'value'
|
|
],
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 0,
|
|
'value' => 'value'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/2": value (tag, operator, value)=(tag, 0, value) already exists.'
|
|
],
|
|
// Fail. Possible values for "tags_evaltype" are 0 (And/Or) and 2 (Or).
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags_evaltype' => 1
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags_evaltype": value must be one of 0, 2.'
|
|
],
|
|
// Fail. Parameter "tag" is mandatory.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1": the parameter "tag" is missing.'
|
|
],
|
|
// Fail. Parameter "tag" cannot be empty.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => ''
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/tag": cannot be empty.'
|
|
],
|
|
// Fail. Parameter "tag" must be of type string.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => null
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/tag": a character string is expected.'
|
|
],
|
|
// Fail. Parameter "tag" must be of type string.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => true
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/tag": a character string is expected.'
|
|
],
|
|
// Fail. Parameter "tag" must be of type string.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 999
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/tag": a character string is expected.'
|
|
],
|
|
// Fail. Unexpected parameter.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
'abcd' => ''
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1": unexpected parameter "abcd".'
|
|
],
|
|
// Fail. Unexpected parameter.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
999 => 'aaa'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1": unexpected parameter "999".'
|
|
],
|
|
// Fail. Unexpected parameter.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'aaa' => 'bbb'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1": unexpected parameter "aaa".'
|
|
],
|
|
// Fail. Condition operator must be of type integer.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => null
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/operator": an integer is expected.'
|
|
],
|
|
// Fail. Condition operator must be of type integer.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => true
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/operator": an integer is expected.'
|
|
],
|
|
// Fail. Possible values for "operator" are 0 (Equals) and 2 (Contains).
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 999
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/operator": value must be one of 0, 2.'
|
|
],
|
|
// Fail. Condition operator must be of type integer.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'operator' => 'aaa'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/operator": an integer is expected.'
|
|
],
|
|
// Fail. Tag value must be of type string.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'value' => null
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/value": a character string is expected.'
|
|
],
|
|
// Fail. Tag value must be of type string.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'value' => true
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/value": a character string is expected.'
|
|
],
|
|
// Fail. Tag value must be of type string.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag',
|
|
'value' => 999
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/tags/1/value": a character string is expected.'
|
|
],
|
|
// Fail. Tag value must be empty.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'maintenance_type' => 1,
|
|
'tags' => [
|
|
[
|
|
'tag' => 'tag'
|
|
]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1": unexpected parameter "tags".'
|
|
],
|
|
// Fail. Active since bigger active till.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1546207200',
|
|
'active_till' => '1514757600'
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/active_till": cannot be less than or equal to the value of parameter "/1/active_since".'
|
|
],
|
|
// Success. Created maintenance with one group.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => [
|
|
'groupid' => 2
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with one group.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with multiple groups.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => [
|
|
['groupid' => 2],
|
|
['groupid' => 4]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Fail. Unexpected parameter in groups.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => [
|
|
'abcd' => '1234'
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/groups/1": unexpected parameter "abcd".'
|
|
],
|
|
// Fail. Wrong group.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => [
|
|
['groupid' => 999]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'No permissions to referred object or it does not exist!'
|
|
],
|
|
// Fail. Duplicate group.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => [
|
|
['groupid' => 999],
|
|
['groupid' => 1000],
|
|
['groupid' => 999]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/groups/3": value (groupid)=(999) already exists.'
|
|
],
|
|
// Success. Created maintenance with one host.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'hosts' => [
|
|
'hostid' => 90020
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with one host.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'hosts' => [
|
|
['hostid' => 90020]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Success. Created maintenance with multiple hosts.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'hosts' => [
|
|
['hostid' => 90020],
|
|
['hostid' => 90021]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => null
|
|
],
|
|
// Fail. Unexpected parameter in hosts.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'hosts' => [
|
|
'abcd' => '1234'
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/hosts/1": unexpected parameter "abcd".'
|
|
],
|
|
// Fail. Wrong host.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'hosts' => [
|
|
['hostid' => 999]
|
|
]
|
|
] + array_diff_key($def_options, array_flip(['groups'])),
|
|
'expected_error' => 'No permissions to referred object or it does not exist!'
|
|
],
|
|
// Fail. Duplicate host.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'hosts' => [
|
|
['hostid' => 999],
|
|
['hostid' => 1000],
|
|
['hostid' => 999]
|
|
]
|
|
] + $def_options,
|
|
'expected_error' => 'Invalid parameter "/1/hosts/3": value (hostid)=(999) already exists.'
|
|
],
|
|
// Fail. Empty groups.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => []
|
|
] + $def_options,
|
|
'expected_error' => 'At least one host group or host must be selected.'
|
|
],
|
|
// Fail. Empty hosts.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'hosts' => []
|
|
] + array_diff_key($def_options, array_flip(['groups'])),
|
|
'expected_error' => 'At least one host group or host must be selected.'
|
|
],
|
|
// Fail. Empty groups and hosts.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'groups' => [],
|
|
'hosts' => []
|
|
] + $def_options,
|
|
'expected_error' => 'At least one host group or host must be selected.'
|
|
],
|
|
// Fail. No groups and hosts.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'every' => 1,
|
|
'dayofweek' => 64,
|
|
'start_time' => 3600,
|
|
'period' => 7200
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'At least one host group or host must be selected.'
|
|
],
|
|
// Fail. Same name.
|
|
[
|
|
'request_data' => [[
|
|
'name' => 'Same name'
|
|
] + $def_options,
|
|
[
|
|
'name' => 'Same name'
|
|
] + $def_options],
|
|
'expected_error' => 'Invalid parameter "/2": value (name)=(Same name) already exists.'
|
|
],
|
|
// Success. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
'timeperiod_type' => 0
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 0
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 0,
|
|
'start_date' => '1514764800'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 0,
|
|
'period' => '600',
|
|
'start_date' => '1514764800'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Fail. Empty time periods.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods": cannot be empty.'
|
|
],
|
|
// Fail. Wrong period type.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/timeperiod_type": value must be one of 0, 2, 3, 4.'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
'abcd' => 0
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "abcd".'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 0,
|
|
'period' => 0
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/period": value must be one of 300-2147483647.'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 0,
|
|
'period' => '2147483648'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/period": a number is too large.'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 0,
|
|
'start_date' => '-1'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/start_date": an unsigned integer is expected.'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 0,
|
|
'start_date' => '2147483648'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/start_date": a timestamp is too large.'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'start_time' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "start_time".'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'every' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "every".'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'day' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "day".'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'dayofweek' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "dayofweek".'
|
|
],
|
|
// Fail. One time period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'month' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "month".'
|
|
],
|
|
// Success. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'every' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'period' => '600',
|
|
'timeperiod_type' => 2,
|
|
'start_time' => '7200',
|
|
'every' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'start_time' => '-1'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/start_time": an unsigned integer is expected.'
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'start_time' => '86400'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/start_time": value must be one of 00:00-23:59.'
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'every' => 0
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/every": value must be one of 1-2147483647.'
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'every' => '2147483648'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/every": a number is too large.'
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'start_date' => '1514764800'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "start_date".'
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'day' => 10
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "day".'
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'dayofweek' => '1'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "dayofweek".'
|
|
],
|
|
// Fail. Daily period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 2,
|
|
'month' => ''
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "month".'
|
|
],
|
|
// Success. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'dayofweek' => '64'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'period' => 7200,
|
|
'timeperiod_type' => 3,
|
|
'start_time' => 7200,
|
|
'every' => 1,
|
|
'dayofweek' => '64'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Fail. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": the parameter "dayofweek" is missing.'
|
|
],
|
|
// Fail. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'dayofweek' => ''
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/dayofweek": an integer is expected.'
|
|
],
|
|
// Fail. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'dayofweek' => '0'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/dayofweek": value must be one of 1-127.'
|
|
],
|
|
// Fail. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'dayofweek' => 128
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/dayofweek": value must be one of 1-127.'
|
|
],
|
|
// Fail. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'dayofweek' => 1,
|
|
'start_date' => '1514764800'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "start_date".'
|
|
],
|
|
// Fail. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'dayofweek' => 1,
|
|
'day' => '30'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "day".'
|
|
],
|
|
// Fail. Weekly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 3,
|
|
'dayofweek' => 1,
|
|
'month' => '30'
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "month".'
|
|
],
|
|
// Success. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 1,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'dayofweek' => 1,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'every' => 2,
|
|
'dayofweek' => 1,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 2,
|
|
'dayofweek' => 0,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 2,
|
|
'dayofweek' => 0,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'every' => 2,
|
|
'day' => 2,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Success. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'every' => 2,
|
|
'day' => 0,
|
|
'dayofweek' => 5,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => null
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'every' => 0,
|
|
'dayofweek' => 1,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/every": value must be one of 1, 2, 3, 4, 5.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'every' => 6,
|
|
'dayofweek' => 1,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/every": value must be one of 1, 2, 3, 4, 5.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 0,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'At least one day of the week or day of the month must be specified.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => '',
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/day": an integer is expected.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => '-1',
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/day": value must be one of 0-31.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 32,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/day": value must be one of 0-31.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 1,
|
|
'dayofweek' => 1,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Day of the week and day of the month cannot be specified simultaneously.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'dayofweek' => 0,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'At least one day of the week or day of the month must be specified.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'dayofweek' => '',
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/dayofweek": an integer is expected.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'dayofweek' => '-1',
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/dayofweek": value must be one of 0-127.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'dayofweek' => 128,
|
|
'month' => 240
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/dayofweek": value must be one of 0-127.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 1
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": the parameter "month" is missing.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 1,
|
|
'month' => ''
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/month": an integer is expected.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 1,
|
|
'month' => 0
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/month": value must be one of 1-4095.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 1,
|
|
'month' => 4096
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1/month": value must be one of 1-4095.'
|
|
],
|
|
// Fail. Monthly period.
|
|
[
|
|
'request_data' => [
|
|
'name' => 'M'.++$n,
|
|
'active_since' => '1514757600',
|
|
'active_till' => '1546207200',
|
|
'groups' => [
|
|
['groupid' => 2]
|
|
],
|
|
'timeperiods' => [
|
|
[
|
|
'timeperiod_type' => 4,
|
|
'day' => 1,
|
|
'month' => 1,
|
|
'start_date' => ''
|
|
]
|
|
]
|
|
],
|
|
'expected_error' => 'Invalid parameter "/1/timeperiods/1": unexpected parameter "start_date".'
|
|
]
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider getMaintenanceCreateData
|
|
*/
|
|
public function testMaintenance_Create($request_data, $expected_error = null) {
|
|
$this->call('maintenance.create', $request_data, $expected_error);
|
|
}
|
|
|
|
public static function getMaintenanceGetData() {
|
|
return [
|
|
[
|
|
'request_data' => [
|
|
'output' => ['tags_evaltype'],
|
|
'selectTags' => 'extend'
|
|
],
|
|
'expected_error' => null
|
|
]
|
|
];
|
|
}
|
|
|
|
/**
|
|
* @dataProvider getMaintenanceGetData
|
|
*/
|
|
public function testMaintenance_Get($request_data, $expected_error = null) {
|
|
$result = $this->call('maintenance.get', $request_data, $expected_error);
|
|
|
|
if ($expected_error === null) {
|
|
foreach ($result['result'] as $maintenance) {
|
|
$this->assertArrayHasKey('tags_evaltype', $maintenance);
|
|
$this->assertArrayHasKey('tags', $maintenance);
|
|
}
|
|
}
|
|
}
|
|
}
|