]> git.mxchange.org Git - friendica.git/blobdiff - tests/DatabaseTestTrait.php
Issue 11470: Check for removed account
[friendica.git] / tests / DatabaseTestTrait.php
index 49dc999b698a1acc21af8e7ae5c921b8b792254e..c6348d774754d3dc88324dee692bb774c333a1fa 100644 (file)
@@ -1,6 +1,22 @@
 <?php
 /**
- * DatabaseTest class.
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
  */
 
 namespace Friendica\Test;
@@ -13,23 +29,25 @@ use Friendica\Test\Util\Database\StaticDatabase;
  */
 trait DatabaseTestTrait
 {
-       protected function setUp()
+       protected function setUpDb()
        {
                StaticDatabase::statConnect($_SERVER);
                // Rollbacks every DB usage (in case the test couldn't call tearDown)
                StaticDatabase::statRollback();
+               // Rollback the first, outer transaction just 2 be sure
+               StaticDatabase::getGlobConnection()->rollBack();
                // Start the first, outer transaction
                StaticDatabase::getGlobConnection()->beginTransaction();
-
-               parent::setUp();
        }
 
-       protected function tearDown()
+       protected function tearDownDb()
        {
-               // Rollbacks every DB usage so we don't commit anything into the DB
-               StaticDatabase::statRollback();
-
-               parent::tearDown();
+               try {
+                       // Rollbacks every DB usage so we don't commit anything into the DB
+                       StaticDatabase::statRollback();
+               } catch (\PDOException $exception) {
+                       print_r("Found already rolled back transaction");
+               }
        }
 
        /**
@@ -45,13 +63,17 @@ trait DatabaseTestTrait
                $data = include $fixture;
 
                foreach ($data as $tableName => $rows) {
+                       if (is_numeric($tableName)) {
+                               continue;
+                       }
+
                        if (!is_array($rows)) {
-                               $dba->p('TRUNCATE TABLE `' . $tableName . '``');
+                               $dba->e('TRUNCATE TABLE `' . $tableName . '``');
                                continue;
                        }
 
                        foreach ($rows as $row) {
-                               $dba->insert($tableName, $row);
+                               $dba->insert($tableName, $row, true);
                        }
                }
        }