Add creation/deletion of separate .htconfig.php used for tests
authorHypolite Petovan <mrpetovan@gmail.com>
Wed, 4 Jul 2018 01:22:50 +0000 (21:22 -0400)
committerHypolite Petovan <mrpetovan@gmail.com>
Wed, 4 Jul 2018 01:22:50 +0000 (21:22 -0400)
tests/DatabaseTest.php

index b53d591..fd1c90b 100644 (file)
@@ -21,24 +21,50 @@ abstract class DatabaseTest extends TestCase
        use TestCaseTrait;
 
        /**
-        * Creates .htconfig.php for bin/worker.php execution
+        * Renames an eventually existing .htconfig.php to .htconfig.php.tmp
+        * Creates a new .htconfig.php for bin/worker.php execution
         */
-       protected function setUp()
+       public static function setUpBeforeClass()
        {
-               parent::setUp();
+               parent::setUpBeforeClass();
 
                $base_config_file_name = 'htconfig.php';
                $config_file_name = '.htconfig.php';
 
                $base_config_file_path = stream_resolve_include_path($base_config_file_name);
                $config_file_path = dirname($base_config_file_path) . DIRECTORY_SEPARATOR . $config_file_name;
+               $config_file_path_tmp = $config_file_path . '.tmp';
 
-               if (!file_exists($config_file_path)) {
-                       $config_string = file_get_contents($base_config_file_path);
+               if (file_exists($config_file_path)) {
+                       rename($config_file_path, $config_file_path_tmp);
+               }
+
+               $config_string = file_get_contents($base_config_file_path);
+
+               $config_string = str_replace('die(', '// die(', $config_string);
+
+               file_put_contents($config_file_path, $config_string);
+       }
 
-                       $config_string = str_replace('die(', '// die(', $config_string);
+       /**
+        * Delete the created .htconfig.php
+        * Renames an eventually existing .htconfig.php.tmp to .htconfig.php
+        */
+       public static function tearDownAfterClass()
+       {
+               $base_config_file_name = 'htconfig.php';
+               $config_file_name = '.htconfig.php';
+
+               $base_config_file_path = stream_resolve_include_path($base_config_file_name);
+               $config_file_path = dirname($base_config_file_path) . DIRECTORY_SEPARATOR . $config_file_name;
+               $config_file_path_tmp = $config_file_path . '.tmp';
+
+               if (file_exists($config_file_path)) {
+                       unlink($config_file_path);
+               }
 
-                       file_put_contents($config_file_path, $config_string);
+               if (file_exists($config_file_path_tmp)) {
+                       rename($config_file_path_tmp, $config_file_path);
                }
        }