. * * @package LibreNMS * @link http://librenms.org * @copyright 2016 Tony Murray * @author Tony Murray */ namespace LibreNMS\Tests; use LibreNMS\Config; class RrdtoolTest extends TestCase { public function testBuildCommandLocal() { Config::set('rrdcached', ''); Config::set('rrdtool_version', '1.4'); Config::set('rrd_dir', '/opt/librenms/rrd'); $cmd = rrdtool_build_command('create', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('create /opt/librenms/rrd/f o', $cmd); $cmd = rrdtool_build_command('tune', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('tune /opt/librenms/rrd/f o', $cmd); $cmd = rrdtool_build_command('update', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('update /opt/librenms/rrd/f o', $cmd); Config::set('rrdtool_version', '1.6'); $cmd = rrdtool_build_command('create', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('create /opt/librenms/rrd/f o -O', $cmd); $cmd = rrdtool_build_command('tune', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('tune /opt/librenms/rrd/f o', $cmd); $cmd = rrdtool_build_command('update', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('update /opt/librenms/rrd/f o', $cmd); } public function testBuildCommandRemote() { Config::set('rrdcached', 'server:42217'); Config::set('rrdtool_version', '1.4'); Config::set('rrd_dir', '/opt/librenms/rrd'); $cmd = rrdtool_build_command('create', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('create /opt/librenms/rrd/f o', $cmd); $cmd = rrdtool_build_command('tune', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('tune /opt/librenms/rrd/f o', $cmd); $cmd = rrdtool_build_command('update', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('update f o --daemon server:42217', $cmd); Config::set('rrdtool_version', '1.6'); $cmd = rrdtool_build_command('create', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('create f o -O --daemon server:42217', $cmd); $cmd = rrdtool_build_command('tune', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('tune f o --daemon server:42217', $cmd); $cmd = rrdtool_build_command('update', '/opt/librenms/rrd/f', 'o'); $this->assertEquals('update f o --daemon server:42217', $cmd); } public function testBuildCommandException() { Config::set('rrdcached', ''); Config::set('rrdtool_version', '1.4'); $this->expectException('LibreNMS\Exceptions\FileExistsException'); // use this file, since it is guaranteed to exist rrdtool_build_command('create', __FILE__, 'o'); } }