]> git.mxchange.org Git - friendica.git/blobdiff - tests/Util/Database/StaticDatabase.php
Merge branch '2021.06-rc' of https://github.com/friendica/friendica into 2021.06...
[friendica.git] / tests / Util / Database / StaticDatabase.php
index c6488fc4839e88f44fb858b04f7c5b83dd853484..3bf6396a94bbf3d4dc9be99796a6df0f294e2213 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -39,6 +39,9 @@ class StaticDatabase extends Database
         */
        private static $staticConnection;
 
+       /** @var bool  */
+       private $_locked = false;
+
        /**
         * Override the behaviour of connect, due there is just one, static connection at all
         *
@@ -58,7 +61,6 @@ class StaticDatabase extends Database
                $this->connection = self::$staticConnection;
                $this->connected = true;
                $this->emulate_prepares = false;
-               $this->pdo_emulate_prepares = false;
 
                return $this->connected;
        }
@@ -78,6 +80,31 @@ class StaticDatabase extends Database
                return true;
        }
 
+       /** Mock for locking tables */
+       public function lock($table)
+       {
+               if ($this->_locked) {
+                       return false;
+               }
+
+               $this->in_transaction = true;
+               $this->_locked = true;
+
+               return true;
+       }
+
+       /** Mock for unlocking tables */
+       public function unlock()
+       {
+               // See here: https://dev.mysql.com/doc/refman/5.7/en/lock-tables-and-transactions.html
+               $this->performCommit();
+
+               $this->in_transaction = false;
+               $this->_locked = false;
+
+               return true;
+       }
+
        /**
         * Does a commit
         *
@@ -164,18 +191,6 @@ class StaticDatabase extends Database
                return self::$staticConnection;
        }
 
-       /**
-        * Perform a global commit for every nested transaction of the static connection
-        */
-       public static function statCommit()
-       {
-               if (isset(self::$staticConnection)) {
-                       while (self::$staticConnection->getTransactionDepth() > 0) {
-                               self::$staticConnection->commit();
-                       }
-               }
-       }
-
        /**
         * Perform a global rollback for every nested transaction of the static connection
         */