6 namespace Friendica\Test;
8 use Friendica\Database\Database;
9 use Friendica\Test\Util\Database\StaticDatabase;
12 * Abstract class used by tests that need a database.
14 trait DatabaseTestTrait
16 protected function setUp()
18 StaticDatabase::statConnect($_SERVER);
19 // Rollbacks every DB usage (in case the test couldn't call tearDown)
20 StaticDatabase::statRollback();
21 // Start the first, outer transaction
22 StaticDatabase::getGlobConnection()->beginTransaction();
27 protected function tearDown()
29 // Rollbacks every DB usage so we don't commit anything into the DB
30 StaticDatabase::statRollback();
36 * Loads a given DB fixture for this DB test
38 * @param string $fixture The path to the fixture
39 * @param Database $dba The DB connection
43 protected function loadFixture(string $fixture, Database $dba)
45 $data = include $fixture;
47 foreach ($data as $tableName => $rows) {
48 if (!is_array($rows)) {
49 $dba->p('TRUNCATE TABLE `' . $tableName . '``');
53 foreach ($rows as $row) {
54 $dba->insert($tableName, $row);