. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace LibreNMS\Tests; use LibreNMS\Alerting\QueryBuilderParser; use LibreNMS\Config; class QueryBuilderTest extends TestCase { private $data_file = 'tests/data/misc/querybuilder.json'; public function testHasQueryData() { $this->assertNotEmpty( $this->loadQueryData(), "Could not load query builder test data from $this->data_file" ); } /** * * @dataProvider loadQueryData * @param string $legacy * @param array $builder * @param string $display * @param string $sql */ public function testQueryConversion($legacy, $builder, $display, $sql) { if (!empty($legacy)) { // some rules don't have a legacy representation $this->assertEquals($builder, QueryBuilderParser::fromOld($legacy)->toArray()); } $this->assertEquals($display, QueryBuilderParser::fromJson($builder)->toSql(false)); $this->assertEquals($sql, QueryBuilderParser::fromJson($builder)->toSql()); } public function loadQueryData() { $base = Config::get('install_dir'); $data = file_get_contents("$base/$this->data_file"); return json_decode($data, true); } }