$config = $this->configModel->load($cat);
- foreach ($config[$cat] as $key => $value) {
- $this->in_db[$cat][$key] = true;
+ if (!empty($config[$cat])) {
+ foreach ($config[$cat] as $key => $value) {
+ $this->in_db[$cat][$key] = true;
+ }
}
// load the whole category out of the DB into the cache
public function __construct(Database $dba)
{
- $this->dba = $dba;
+ $this->dba = $dba;
}
/**
namespace Friendica\Test;
-use Friendica\App;
-use Friendica\Database\DBA;
-use Friendica\Factory;
+use Friendica\App\Mode;
+use Friendica\App\Router;
+use Friendica\Core\Config\Cache\ConfigCache;
+use Friendica\Database\Database;
+use Friendica\Factory\ConfigFactory;
+use Friendica\Factory\DBFactory;
+use Friendica\Factory\ProfilerFactory;
use Friendica\Util\BasePath;
use Friendica\Util\Config\ConfigFileLoader;
-use Friendica\Util\Logger\VoidLogger;
use Friendica\Util\Profiler;
use PHPUnit\DbUnit\DataSet\YamlDataSet;
use PHPUnit\DbUnit\TestCaseTrait;
{
use TestCaseTrait;
+ /** @var Database */
+ protected static $dba;
+
+ /** @var BasePath */
+ protected static $basePath;
+
+ /** @var Mode */
+ protected static $mode;
+
+ /** @var ConfigCache */
+ protected static $configCache;
+
+ /** @var Profiler */
+ protected static $profiler;
+
+ public static function setUpBeforeClass()
+ {
+ parent::setUpBeforeClass();
+
+ self::$basePath = BasePath::create(dirname(__DIR__));
+ self::$mode = new Mode(self::$basePath);
+ $configLoader = new ConfigFileLoader(self::$basePath, self::$mode);
+ self::$configCache = ConfigFactory::createCache($configLoader);
+ self::$profiler = ProfilerFactory::create(self::$configCache);
+ self::$dba = DBFactory::init(self::$configCache, self::$profiler, $_SERVER);
+ }
+
/**
* Get database connection.
*
$this->markTestSkipped('Please set the MYSQL_* environment variables to your test database credentials.');
}
- $basePath = BasePath::create(dirname(__DIR__));
- $mode = new App\Mode($basePath);
- $configLoader = new ConfigFileLoader($basePath, $mode);
- $config = Factory\ConfigFactory::createCache($configLoader);
-
- $profiler = \Mockery::mock(Profiler::class);
-
- DBA::connect(
- $config,
- $profiler,
- new VoidLogger(),
- getenv('MYSQL_HOST'),
- getenv('MYSQL_USERNAME'),
- getenv('MYSQL_PASSWORD'),
- getenv('MYSQL_DATABASE'));
-
- if (!DBA::connected()) {
- $this->markTestSkipped('Could not connect to the database.');
+ if (!self::$dba->isConnected()) {
+ if (!self::$dba->connect()) {
+ $this->markTestSkipped('Could not connect to the database.');
+ }
}
- return $this->createDefaultDBConnection(DBA::getConnection(), getenv('MYSQL_DATABASE'));
+ return $this->createDefaultDBConnection(self::$dba->getConnection(), getenv('MYSQL_DATABASE'));
}
/**
*/
public function setUp()
{
- $basePath = BasePath::create(dirname(__DIR__) . '/../');
- $mode = new App\Mode($basePath);
- $router = new App\Router();
- $configLoader = new ConfigFileLoader($basePath, $mode);
- $configCache = Factory\ConfigFactory::createCache($configLoader);
- $profiler = Factory\ProfilerFactory::create($configCache);
- $database = Factory\DBFactory::init($configCache, $profiler, $_SERVER);
- $config = Factory\ConfigFactory::createConfig($configCache);
- Factory\ConfigFactory::createPConfig($configCache, new Config\Cache\PConfigCache());
- $logger = Factory\LoggerFactory::create('test', $database, $config, $profiler);
+ $configModel = new \Friendica\Model\Config\Config(self::$dba);
+ $config = Factory\ConfigFactory::createConfig(self::$configCache, $configModel);
+ Factory\ConfigFactory::createPConfig(new Config\Cache\PConfigCache());
+ $logger = Factory\LoggerFactory::create('test', self::$dba, $config, self::$profiler);
$baseUrl = new BaseURL($config, $_SERVER);
- $this->app = new App($database, $config, $mode, $router, $baseUrl, $logger, $profiler, false);
+ $router = new App\Router();
+ $this->app = new App(self::$dba, $config, self::$mode, $router, $baseUrl, $logger, self::$profiler, false);
parent::setUp();
}
}
+ /**
+ * Test the configuration load without result
+ */
+ public function testLoadWrong()
+ {
+ $this->configModel->shouldReceive('isConnected')->andReturn(true)->once();
+ $this->configModel->shouldReceive('load')->withAnyArgs()->andReturn([])->once();
+
+ $this->testedConfig = $this->getInstance();
+ $this->assertInstanceOf(ConfigCache::class, $this->testedConfig->getCache());
+
+ $this->assertEmpty($this->testedConfig->getCache()->getAll());
+ }
+
/**
* Test the configuration get() and set() methods without adapter
*
use Friendica\Database\DBA;
use Friendica\Factory;
use Friendica\Test\DatabaseTest;
-use Friendica\Util\BasePath;
use Friendica\Util\BaseURL;
-use Friendica\Util\Config\ConfigFileLoader;
class DBATest extends DatabaseTest
{
public function setUp()
{
- $basePath = BasePath::create(dirname(__DIR__) . '/../../');
- $mode = new App\Mode($basePath);
- $router = new App\Router();
- $configLoader = new ConfigFileLoader($basePath, $mode);
- $configCache = Factory\ConfigFactory::createCache($configLoader);
- $profiler = Factory\ProfilerFactory::create($configCache);
- $database = Factory\DBFactory::init($configCache, $profiler, $_SERVER);
- $config = Factory\ConfigFactory::createConfig($configCache);
- Factory\ConfigFactory::createPConfig($configCache, new Config\Cache\PConfigCache());
- $logger = Factory\LoggerFactory::create('test', $database, $config, $profiler);
+ $configModel = new \Friendica\Model\Config\Config(self::$dba);
+ $config = Factory\ConfigFactory::createConfig(self::$configCache, $configModel);
+ Factory\ConfigFactory::createPConfig(new Config\Cache\PConfigCache());
+ $logger = Factory\LoggerFactory::create('test', self::$dba, $config, self::$profiler);
$baseUrl = new BaseURL($config, $_SERVER);
- $this->app = new App($database, $config, $mode, $router, $baseUrl, $logger, $profiler, false);
+ $router = new App\Router();
+ $this->app = new App(self::$dba, $config, self::$mode, $router, $baseUrl, $logger, self::$profiler, false);
parent::setUp();
use Friendica\Database\DBStructure;
use Friendica\Factory;
use Friendica\Test\DatabaseTest;
-use Friendica\Util\BasePath;
use Friendica\Util\BaseURL;
-use Friendica\Util\Config\ConfigFileLoader;
class DBStructureTest extends DatabaseTest
{
public function setUp()
{
- $basePath = BasePath::create(dirname(__DIR__) . '/../../');
- $mode = new App\Mode($basePath);
- $router = new App\Router();
- $configLoader = new ConfigFileLoader($basePath, $mode);
- $configCache = Factory\ConfigFactory::createCache($configLoader);
- $profiler = Factory\ProfilerFactory::create($configCache);
- $database = Factory\DBFactory::init($configCache, $profiler, $_SERVER);
- $config = Factory\ConfigFactory::createConfig($configCache);
- Factory\ConfigFactory::createPConfig($configCache, new PConfigCache());
- $logger = Factory\LoggerFactory::create('test', $database, $config, $profiler);
+ $configModel = new \Friendica\Model\Config\Config(self::$dba);
+ $config = Factory\ConfigFactory::createConfig(self::$configCache, $configModel);
+ Factory\ConfigFactory::createPConfig(new PConfigCache());
+ $logger = Factory\LoggerFactory::create('test', self::$dba, $config, self::$profiler);
$baseUrl = new BaseURL($config, $_SERVER);
- $this->app = new App($database, $config, $mode, $router, $baseUrl, $logger, $profiler, false);
+ $router = new App\Router();
+ $this->app = new App(self::$dba, $config, self::$mode, $router, $baseUrl, $logger, self::$profiler, false);
parent::setUp();
}