mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-05-09 01:00:11 +02:00
WIP commit that adds the test fixture code for MySQL and PgSQL. MonitoringController can be used as the base class for controller tests and resolves dependencies required for testing icinga2web controllers. Hopefully we don't need that much require-foo in the future, as more dependencies should move into the request class refs #4417
59 lines
1.9 KiB
PHP
59 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Test\Monitoring\Testlib\DataSource;
|
|
|
|
require_once(dirname(__FILE__).'/strategies/InsertionStrategy.php');
|
|
require_once(dirname(__FILE__).'/strategies/SetupStrategy.php');
|
|
|
|
require_once(dirname(__FILE__).'/strategies/MySQLSetupStrategy.php');
|
|
require_once(dirname(__FILE__).'/strategies/PgSQLSetupStrategy.php');
|
|
require_once(dirname(__FILE__).'/strategies/PDOInsertionStrategy.php');
|
|
require_once(dirname(__FILE__).'/TestFixture.php');
|
|
|
|
use \Test\Monitoring\Testlib\Datasource\Strategies\InsertionStrategy;
|
|
use \Test\Monitoring\Testlib\Datasource\Strategies\SetupStrategy;
|
|
use \Test\Monitoring\Testlib\Datasource\Strategies\MySQLSetupStrategy;
|
|
use \Test\Monitoring\Testlib\Datasource\Strategies\PgSQLSetupStrategy;
|
|
use \Test\Monitoring\Testlib\Datasource\Strategies\PDOInsertionStrategy;
|
|
|
|
class DataSourceTestSetup implements SetupStrategy, InsertionStrategy
|
|
{
|
|
|
|
private $setupStrategy;
|
|
private $insertionStrategy;
|
|
|
|
public function __construct($type)
|
|
{
|
|
if ($type == 'mysql') {
|
|
$this->setupStrategy = new MySQLSetupStrategy();
|
|
$this->insertionStrategy = new PDOInsertionStrategy();
|
|
} elseif ($type == 'pgsql') {
|
|
$this->setupStrategy = new PgSQLSetupStrategy();
|
|
$this->insertionStrategy = new PDOInsertionStrategy();
|
|
} else {
|
|
throw new \Exception('Unsupported backend '.$type);
|
|
}
|
|
|
|
}
|
|
|
|
public function insert(TestFixture $fixture) {
|
|
$this->insertionStrategy->insert($fixture);
|
|
}
|
|
|
|
public function setup($version = null, $connection = null)
|
|
{
|
|
$c = $this->setupStrategy->setup($version, $connection);
|
|
$this->insertionStrategy->setConnection($c);
|
|
}
|
|
|
|
public function teardown($connection = null)
|
|
{
|
|
$this->setupStrategy->teardown($connection);
|
|
}
|
|
|
|
public function setConnection($connection)
|
|
{
|
|
$this->insertionStrategy->setConnection($connection);
|
|
}
|
|
|
|
} |