. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace LibreNMS\Tests\Unit\Data; use LibreNMS\Config; use LibreNMS\Tests\TestCase; /** * @group datastores */ class DatastoreTest extends TestCase { protected function setUp() : void { parent::setUp(); Config::forget([ 'graphite', 'influxdb', 'opentsdb', 'prometheus', 'rrd', ]); } public function testDefaultInitialization() { $ds = $this->app->make('Datastore'); $stores = $ds->getStores(); $this->assertCount(1, $stores, 'Incorrect number of default stores enabled'); $this->assertEquals('LibreNMS\Data\Store\Rrd', get_class($stores[0]), 'The default enabled store should be Rrd'); } public function testInitialization() { Config::set('rrd.enable', false); Config::set('graphite.enable', true); Config::set('influxdb.enable', true); Config::set('opentsdb.enable', true); Config::set('prometheus.enable', true); $ds = $this->app->make('Datastore'); $stores = $ds->getStores(); $this->assertCount(4, $stores, 'Incorrect number of default stores enabled'); $enabled = array_map('get_class', $stores); $expected_enabled = [ 'LibreNMS\Data\Store\Graphite', 'LibreNMS\Data\Store\InfluxDB', 'LibreNMS\Data\Store\OpenTSDB', 'LibreNMS\Data\Store\Prometheus', ]; $this->assertEquals($expected_enabled, $enabled, 'Expected all non-default stores to be initialized'); } }