librenms-librenms/tests/YamlTest.php
Neil Lathwood 5e32474d26 feature: Added support for sensors to be discovered from yaml (#6859)
* feature: Added support for sensors to be discovered from yaml

* added discovery definitions

* Updated docs, more code updates + tests

* removed the oid_name use

* pre-set variable from scrut output

* small updates as per comments in pr

* Allow index in descr

* Added ability to skip values

* Check for numeric values

* small update of oid name
2017-06-26 23:27:57 +01:00

77 lines
2.5 KiB
PHP

<?php
/**
* YamlTest.php
*
* -Description-
*
* 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 3 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, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2016 Neil Lathwood
* @author Neil Lathwood <librenms+n@laf.io>
*/
namespace LibreNMS\Tests;
use Symfony\Component\Yaml\Yaml;
use Symfony\Component\Yaml\Exception\ParseException;
use PHPUnit_Framework_ExpectationFailedException as PHPUnitException;
class YamlTest extends \PHPUnit_Framework_TestCase
{
public function testOSYaml()
{
global $config;
$pattern = $config['install_dir'] . '/includes/definitions/*.yaml';
foreach (glob($pattern) as $file) {
try {
$data = Yaml::parse(file_get_contents($file));
} catch (ParseException $e) {
throw new PHPUnitException("$file Could not be parsed");
}
$this->assertArrayHasKey('os', $data, $file);
$this->assertArrayHasKey('type', $data, $file);
$this->assertArrayHasKey('text', $data, $file);
}
}
public function testDiscoveryYaml()
{
global $config;
$pattern = $config['install_dir'] . '/includes/definitions/discovery/*.yaml';
foreach (glob($pattern) as $file) {
try {
$data = Yaml::parse(file_get_contents($file));
} catch (ParseException $e) {
throw new PHPUnitException("$file Could not be parsed");
}
foreach ($data['modules'] as $module => $sub_modules) {
foreach ($sub_modules as $sub_module) {
foreach ($sub_module as $sensor) {
$this->assertArrayHasKey('oid', $sensor, $file);
$this->assertArrayHasKey('num_oid', $sensor, $file);
$this->assertArrayHasKey('value', $sensor, $file);
}
}
}
}
}
}