From bbaa44293faf4c7b7f5a47f2f0bcc7c580ce697d Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Tue, 7 Sep 2021 13:52:35 +0200
Subject: [PATCH] revert changes to StudipPdoTest, re #147

---
 tests/unit/lib/classes/StudipPdoTest.php | 67 +++++++++---------------
 1 file changed, 24 insertions(+), 43 deletions(-)

diff --git a/tests/unit/lib/classes/StudipPdoTest.php b/tests/unit/lib/classes/StudipPdoTest.php
index 36ba11ce3c1..6ec14d3c4d5 100644
--- a/tests/unit/lib/classes/StudipPdoTest.php
+++ b/tests/unit/lib/classes/StudipPdoTest.php
@@ -1,5 +1,4 @@
 <?php
-
 /*
  * studip_pdo_test.php - unit tests for the StudipPDO class
  *
@@ -13,94 +12,76 @@
  * @category    Stud.IP
  */
 
-class StudipPdoTest extends \Codeception\Test\Unit
+abstract class TestStudipPDO extends StudipPDO
 {
-    public function setUp(): void
-    {
-        $dsn =
-            'mysql:host=' .
-            $GLOBALS['DB_STUDIP_HOST'] .
-            ';dbname=' .
-            $GLOBALS['DB_STUDIP_DATABASE'] .
-            ';charset=utf8mb4';
-        $username = $GLOBALS['DB_STUDIP_USER'];
-        $password = $GLOBALS['DB_STUDIP_PASSWORD'];
-
-        $this->testPdo = new class ($dsn, $username, $password) extends StudipPDO {
-            public static function doReplaceStrings($statement)
-            {
-                return parent::replaceStrings($statement);
-            }
-        };
-
-        $this->testPdo->beginTransaction();
-    }
-
-    public function tearDown(): void
+    public static function doReplaceStrings($statement)
     {
-        $this->testPdo->rollBack();
+        return parent::replaceStrings($statement);
     }
+}
 
+class StudipPDOTest extends \Codeception\Test\Unit
+{
     public function testSimpleString()
     {
-        $query = 'SELECT * FROM bar';
+        $query  = 'SELECT * FROM bar';
         $expect = $query;
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
     }
 
     public function testDoubleQuotedString()
     {
-        $query = 'SELECT "\'foo""\\"" FROM bar WHERE foo = "\\\\"';
+        $query  = 'SELECT "\'foo""\\"" FROM bar WHERE foo = "\\\\"';
         $expect = 'SELECT ? FROM bar WHERE foo = ?';
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
 
-        $query = str_repeat($query, 100);
+        $query  = str_repeat($query, 100);
         $expect = str_repeat($expect, 100);
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
     }
 
     public function testSingleQuotedString()
     {
-        $query = 'SELECT \'"foo\'\'\\\'\' FROM bar WHERE foo = \'\\\\\'';
+        $query  = 'SELECT \'"foo\'\'\\\'\' FROM bar WHERE foo = \'\\\\\'';
         $expect = 'SELECT ? FROM bar WHERE foo = ?';
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
 
-        $query = str_repeat($query, 100);
+        $query  = str_repeat($query, 100);
         $expect = str_repeat($expect, 100);
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
     }
 
     public function testMixedQuotedString()
     {
-        $query = 'SELECT """\'", \'"\' FROM bar WHERE foo IN (\'\'\'"\'"")';
+        $query  = 'SELECT """\'", \'"\' FROM bar WHERE foo IN (\'\'\'"\'"")';
         $expect = 'SELECT ?, ? FROM bar WHERE foo IN (??)';
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
 
-        $query = str_repeat($query, 100);
+        $query  = str_repeat($query, 100);
         $expect = str_repeat($expect, 100);
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
     }
 
     public function testUnterminatedSingleQuote()
     {
-        $query = 'SELECT \'1\' ORDER BY \'au.username asc';
+        $query  = 'SELECT \'1\' ORDER BY \'au.username asc';
         $expect = 'SELECT ? ORDER BY \'au.username asc';
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
     }
 
     public function testUnterminatedDoubleQuote()
     {
-        $query = 'SELECT "1" ORDER BY "au.username asc';
+        $query  = 'SELECT "1" ORDER BY "au.username asc';
         $expect = 'SELECT ? ORDER BY "au.username asc';
 
-        $this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
+        $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
     }
 }
-- 
GitLab