. * * @package LibreNMS * @link http://librenms.org * @copyright 2016 Neil Lathwood * @author Neil Lathwood */ 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['data'] as $sensor) { $this->assertArrayHasKey('oid', $sensor, $file); $this->assertArrayHasKey('num_oid', $sensor, $file); $this->assertArrayHasKey('descr', $sensor, $file); } } } } } }