From f5133da24569f42f8ff34d5745661dabf2bd6162 Mon Sep 17 00:00:00 2001
From: Damien Burel <damien.burel@maarch.org>
Date: Wed, 2 Aug 2017 18:19:31 +0200
Subject: [PATCH] FEAT Add priority test + remove password check for a database
 connection

---
 composer.json                           |   1 -
 core/Controllers/PriorityController.php |   4 +-
 core/Models/DatabasePDO.php             |   4 +-
 core/Test/PrioritiesControllerTest.php  | 227 ------------------------
 core/Test/PriorityControllerTest.php    | 115 ++++++++++++
 core/Test/StatusControllerTest.php      |   1 -
 core/Test/UserControllerTest.php        |  48 +++--
 phpunit.xml                             |   2 +
 8 files changed, 152 insertions(+), 250 deletions(-)
 delete mode 100644 core/Test/PrioritiesControllerTest.php
 create mode 100644 core/Test/PriorityControllerTest.php

diff --git a/composer.json b/composer.json
index c7b4faed3f2..3fcae26595e 100644
--- a/composer.json
+++ b/composer.json
@@ -14,7 +14,6 @@
     "require": {
         "slim/slim": "^3",
         "respect/validation": "^1.1",
-        "guzzlehttp/guzzle": "^6.2",
         "php-http/curl-client": "^1.7",
         "m4tthumphrey/php-gitlab-api": "dev-master"
     }
diff --git a/core/Controllers/PriorityController.php b/core/Controllers/PriorityController.php
index c86b9e24033..bbbf13b81f9 100644
--- a/core/Controllers/PriorityController.php
+++ b/core/Controllers/PriorityController.php
@@ -70,13 +70,13 @@ class PriorityController
         $check = Validator::stringType()->notEmpty()->validate($data['label']);
         $check = $check && Validator::stringType()->notEmpty()->validate($data['color']);
         $check = $check && Validator::intVal()->notEmpty()->validate($data['delays']);
-        $check = $check && Validator::boolType()->notEmpty()->validate($data['working_days']);
+        $check = $check && Validator::boolType()->validate($data['working_days']);
         if (!$check) {
             return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
         }
 
         $data['id'] = $aArgs['id'];
-        $data['working_days'] = $data['working_days'] ? 'true' : 'false';
+        $data['working_days'] = empty($data['working_days']) ? 'false' : 'true';
 
         PriorityModel::update($data);
 
diff --git a/core/Models/DatabasePDO.php b/core/Models/DatabasePDO.php
index 830082bddf4..003781915b5 100644
--- a/core/Models/DatabasePDO.php
+++ b/core/Models/DatabasePDO.php
@@ -61,11 +61,11 @@ class DatabasePDO
         }
 
         ValidatorModel::notEmpty(
-            ['driver' => $formattedDriver, 'server' => $server, 'port' => $port, 'name' => $name, 'user' => $user, 'password' => $password],
+            ['driver' => $formattedDriver, 'server' => $server, 'port' => $port, 'name' => $name, 'user' => $user],
             ['driver', 'server', 'port', 'name', 'user', 'password']
         );
         ValidatorModel::stringType(
-            ['driver' => $formattedDriver, 'server' => $server, 'name' => $name, 'user' => $user, 'password' => $password],
+            ['driver' => $formattedDriver, 'server' => $server, 'name' => $name, 'user' => $user],
             ['driver', 'server', 'name', 'user', 'password']
         );
         ValidatorModel::intVal(['port' => $port], ['port']);
diff --git a/core/Test/PrioritiesControllerTest.php b/core/Test/PrioritiesControllerTest.php
deleted file mode 100644
index 07e081d4ce0..00000000000
--- a/core/Test/PrioritiesControllerTest.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-
-namespace MaarchTest;
-
-require_once __DIR__.'/define.php';
-require_once 'apps/maarch_entreprise/services/Table.php';
-
-class PrioritiesControllerTest extends \PHPUnit_Framework_TestCase
-{   
-
-    public function testCreate()
-    {
-        $environment = \Slim\Http\Environment::mock([
-            'REQUEST_METHOD' => 'POST'
-        ]);        
-        $priorities = new \Core\Controllers\PrioritiesController();
-        $request     = \Slim\Http\Request::createFromEnvironment($environment);
-        $table = new \Apps_Table_Service();
-
-        $aArgs = [
-            'color_priority' => '#ffffff',
-            'label_priority' => 'priorityCreated',
-            'delays' => "2",
-            'working_days' =>'Y'
-        ];
-
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
-        $response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);        
-        $tabPriorities = $table->select([
-            'select'    => empty($aArgs['select']) ?  ['*'] : $aArgs['select'],
-            'table'     => ['priorities'],
-            'orderby'      => 'id'
-        ]);
-        end($tabPriorities);
-        $key =key($tabPriorities);
-        $id = $tabPriorities[$key]['id'];
-        $compare = '[{"id":'.$id.',"label_priority":"priorityCreated","color_priority":"#ffffff","working_days":"Y","delays":"2"}]';
-
-        $this->assertSame($compare,(string)$response->getBody());
-
-        $aArgs = [
-            'color_priority' => '',
-            'label_priority' => '',
-            'delays' => '',
-            'working_days' =>''
-        ];
-        $compare = '{"errors":["Valeur label vide","Aucune Couleur assign\u00e9e","Delai vide","jours vide"]}';
-
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
-        $response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);
-        $this->assertSame($compare,(string)$response->getBody());
-        
-        // Delays non numérique
-        
-        $aArgs = [
-            'color_priority' => '#ffff',
-            'label_priority' => 'ErrorColor',
-            'delays' => 'abc',
-            'working_days' =>'A'
-        ];
-
-        $compare = '{"errors":["Format couleur invalide","Valeur working_days invalide","Valeur delays non num\u00e9rique"]}';
-
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
-        $response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);
-        $this->assertSame($compare,(string)$response->getBody());
-
-        $aArgs = [
-            'color_priority' => '#ffff',
-            'label_priority' => 'ErrorColor',
-            'delays' => '-1',
-            'working_days' =>'A'
-        ];
-
-        $compare = '{"errors":["Format couleur invalide","Valeur working_days invalide","Valeur delays non num\u00e9rique","Valeur n\u00e9gative"]}';
-
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
-        $response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);
-        $this->assertSame($compare,(string)$response->getBody());        
-    }
-
-    public function testGetList(){
-        $priorities = new \Core\Controllers\PrioritiesController();
-        
-        $environment = \Slim\Http\Environment::mock([
-            'REQUEST_METHOD'    =>  'GET'
-        ]);
-
-        $request     = \Slim\Http\Request::createFromEnvironment($environment);
-        $response = $priorities->getList($request, new \Slim\Http\Response());
-        $this->assertNotNull((string)$response->getBody());
-    }
-
-    public function testGetById(){
-        $priorities = new \Core\Controllers\PrioritiesController();
-
-        $environment = \Slim\Http\Environment::mock([
-            'REQUEST_METHOD'    =>  'GET'
-        ]);
-        $request     = \Slim\Http\Request::createFromEnvironment($environment);
-
-        $aArgs = [
-            'id'    =>'1'
-        ];
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
-
-        
-        $response = $priorities->getById($fullRequest, new \Slim\Http\Response(), $aArgs);
-        $this->assertNotNull((string)$response->getBody());
-        $compare = '[{"id":1,"label_priority":"priorityCreated","color_priority":"#ffffff","working_days":"Y","delays":"12"}]';
-        $this->assertSame($compare,(string)$response->getBody());
-
-
-        $aArgs = [
-            'id'    => 187
-        ];
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
-
-        
-        $response = $priorities->getById($fullRequest, new \Slim\Http\Response(), $aArgs);
-        $this->assertNotNull((string)$response->getBody());
-        $compare = '{"errors":"Aucune priorit\u00e9 trouv\u00e9e"}';
-        $this->assertSame($compare,(string)$response->getBody());
-        /*$query = 'id=0';
-
-        $environment = \Slim\Http\Environment::mock([
-            'REQUEST_METHOD'    =>  'GET',
-            'QUERY_STRING'      =>$query
-        ]);
-        $response = $priorities->getById(\Slim\Http\Request::createFromEnvironment($environment), new \Slim\Http\Response(), ['id' => 0]);
-        $this->assertNotNull((string)$response->getBody());
-        $compare = '[{"id":1,"label_priority":"labelTest","color_priority":"#ffffff","working_days":"Y","delays":"12"}]';
-        $this->assertSame($compare,(string)$response->getBody());
-        */
-    }
-
-    public function testUpdate()
-    {
-        //TEST TOUT OK
-        $environment = \Slim\Http\Environment::mock([
-            'REQUEST_METHOD' => 'PUT'
-        ]);        
-        $priorities = new \Core\Controllers\PrioritiesController();
-        $request     = \Slim\Http\Request::createFromEnvironment($environment);
-        $table = new \Apps_Table_Service();
-
-        $tabPriorities = $table->select([
-            'select'    => empty($aArgs['select']) ?  ['*'] : $aArgs['select'],
-            'table'     => ['priorities'],
-            'orderby'      => 'id'
-        ]);
-        end($tabPriorities);
-        $key =key($tabPriorities);
-        $id = $tabPriorities[$key]['id'];
-        
-        //TEST MAUVAIS FORMAT DE COULEUR
-
-        $aArgs = [
-            'id' => $id,
-            'color_priority' => '#ffffff', //Mauvais format de couleurs
-            'label_priority' => 'labelTestUpdated',
-            'delays' => "15",
-            'working_days' =>'Y'
-        ];
-
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
-        $response = $priorities->update($fullRequest, new \Slim\Http\Response(), $aArgs);        
-        $compare = '[{"id":'.$id.',"label_priority":"labelTestUpdated","color_priority":"#ffffff","working_days":"Y","delays":"15"}]';
-
-        $this->assertSame($compare,(string)$response->getBody());
-
-        $aArgs = [
-            'id' => $id,
-            'color_priority' => '#ffff',
-            'label_priority' => 'labelTestUpdated',
-            'delays' => "15",
-            'working_days' =>'Y'
-        ];
-
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
-        $response = $priorities->update($fullRequest, new \Slim\Http\Response(), $aArgs);        
-        $compare = '{"errors":["Format couleur invalide"]}';
-
-        $this->assertSame($compare,(string)$response->getBody());
-        
-        //TEST ID Non existant
-        $aArgs = [
-            'id' => '187',
-            'color_priority' => '#ffffff', //Mauvais format de couleurs
-            'label_priority' => 'labelTestUpdated',
-            'delays' => "15",
-            'working_days' =>'Y'
-        ];
-
-        $fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
-        $response = $priorities->update($fullRequest, new \Slim\Http\Response(), $aArgs);        
-        $compare = '{"errors":["Cette priorit\u00e9 n\'existe pas"]}';
-
-        $this->assertSame($compare,(string)$response->getBody());        
-    }
-
-    public function testDelete(){
-        $table = new \Apps_Table_Service();
-        $tabPriorities = $table->select([
-            'select'    => empty($aArgs['']) ?  ['*'] : $aArgs['select'],
-            'table'     => ['priorities'],
-            'orderby'      => 'id'
-        ]);
-        
-        end($tabPriorities);
-        $key =key($tabPriorities);
-        $id = $tabPriorities[$key]['id'];
-        $query = 'id='.$id;
-
-        $environment = \Slim\Http\Environment::mock([
-            'REQUEST_METHOD' => 'DELETE',
-            'QUERY_STRING'   => $query,
-        ]);
-        
-        $priorities = new \Core\Controllers\PrioritiesController();
-        $response = $priorities->delete(\Slim\Http\Request::createFromEnvironment($environment), new \Slim\Http\Response(), ['id' => $id]);
-        $compare = 'true';
-        $this->assertSame($compare,(string)$response->getBody());
-        
-    }
-}
-?>
\ No newline at end of file
diff --git a/core/Test/PriorityControllerTest.php b/core/Test/PriorityControllerTest.php
new file mode 100644
index 00000000000..f5aa6ac9d73
--- /dev/null
+++ b/core/Test/PriorityControllerTest.php
@@ -0,0 +1,115 @@
+<?php
+
+namespace MaarchTest;
+use PHPUnit\Framework\TestCase;
+
+class PriorityControllerTest extends TestCase
+{
+    private static $id = null;
+
+
+    public function testCreate()
+    {
+        $priorityController = new \Core\Controllers\PriorityController();
+
+        //  CREATE
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+
+        $aArgs = [
+            'label'         => 'TEST-OVER-URGENT',
+            'color'         => '#ffffff',
+            'working_days'  => true,
+            'delays'        => '2'
+        ];
+        $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
+
+        $response     = $priorityController->create($fullRequest, new \Slim\Http\Response());
+        $responseBody = json_decode((string)$response->getBody());
+
+        self::$id = $responseBody->priority;
+
+        $this->assertInternalType('string', self::$id);
+
+        //  READ
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+        $response       = $priorityController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
+        $responseBody   = json_decode((string)$response->getBody());
+
+        $this->assertSame(self::$id, $responseBody->priority->id);
+        $this->assertSame('TEST-OVER-URGENT', $responseBody->priority->label);
+        $this->assertSame('#ffffff', $responseBody->priority->color);
+        $this->assertSame(true, $responseBody->priority->working_days);
+        $this->assertSame(2, $responseBody->priority->delays);
+    }
+
+    public function testGet()
+    {
+        $priorityController = new \Core\Controllers\PriorityController();
+
+        //  GET
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+        $response       = $priorityController->get($request, new \Slim\Http\Response());
+        $responseBody   = json_decode((string)$response->getBody());
+
+        $this->assertInternalType('array', $responseBody->priorities);
+        $this->assertNotNull($responseBody->priorities);
+    }
+
+    public function testUpdate()
+    {
+        $priorityController = new \Core\Controllers\PriorityController();
+
+        //  UPDATE
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+
+        $aArgs = [
+            'label'         => 'TEST-OVER-URGENT-UPDATED',
+            'color'         => '#f2f2f2',
+            'working_days'  => false,
+            'delays'        => '4'
+        ];
+        $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
+
+        $response     = $priorityController->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]);
+        $responseBody = json_decode((string)$response->getBody());
+
+        $this->assertSame(_UPDATED_PRIORITY, $responseBody->success);
+
+        //  READ
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+        $response       = $priorityController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
+        $responseBody   = json_decode((string)$response->getBody());
+
+        $this->assertSame(self::$id, $responseBody->priority->id);
+        $this->assertSame('TEST-OVER-URGENT-UPDATED', $responseBody->priority->label);
+        $this->assertSame('#f2f2f2', $responseBody->priority->color);
+        $this->assertSame(false, $responseBody->priority->working_days);
+        $this->assertSame(4, $responseBody->priority->delays);
+    }
+
+    public function testDelete()
+    {
+        $priorityController = new \Core\Controllers\PriorityController();
+
+        //  DELETE
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+        $response       = $priorityController->delete($request, new \Slim\Http\Response(), ['id' => self::$id]);
+        $responseBody   = json_decode((string)$response->getBody());
+
+        $this->assertSame(_DELETED_PRIORITY, $responseBody->success);
+
+        //  READ
+        $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
+        $request        = \Slim\Http\Request::createFromEnvironment($environment);
+        $response       = $priorityController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
+        $responseBody   = json_decode((string)$response->getBody());
+
+        $this->assertSame('Priority not found', $responseBody->errors);
+    }
+}
diff --git a/core/Test/StatusControllerTest.php b/core/Test/StatusControllerTest.php
index ace8cb8379d..236b9fab859 100644
--- a/core/Test/StatusControllerTest.php
+++ b/core/Test/StatusControllerTest.php
@@ -9,7 +9,6 @@
 
 namespace MaarchTest;
 use PHPUnit\Framework\TestCase;
-//require_once __DIR__.'/define.php';
 
 class StatusControllerTest extends TestCase
 {
diff --git a/core/Test/UserControllerTest.php b/core/Test/UserControllerTest.php
index 1cf3334066c..9b750c4002f 100644
--- a/core/Test/UserControllerTest.php
+++ b/core/Test/UserControllerTest.php
@@ -8,14 +8,16 @@
 */
 
 namespace MaarchTest;
+use PHPUnit\Framework\TestCase;
 
 use Core\Models\DatabaseModel;
 
-require_once __DIR__.'/define.php';
-
-class UserControllerTest extends \PHPUnit_Framework_TestCase
+class UserControllerTest extends TestCase
 {
-    public function testCRUD()
+    private static $id = null;
+
+
+    public function testCreate()
     {
         $userController = new \Core\Controllers\UserController();
 
@@ -33,16 +35,17 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
         $response     = $userController->create($fullRequest, new \Slim\Http\Response());
         $responseBody = json_decode((string)$response->getBody());
 
-        $id = $responseBody->user->id;
-        $this->assertInternalType('int', $id);
+        self::$id = $responseBody->user->id;
+
+        $this->assertInternalType('int', self::$id);
 
         //  READ
         $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
         $request        = \Slim\Http\Request::createFromEnvironment($environment);
-        $response     = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]);
+        $response     = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => self::$id]);
         $responseBody = json_decode((string)$response->getBody());
 
-        $this->assertSame($id, $responseBody->id);
+        $this->assertSame(self::$id, $responseBody->id);
         $this->assertSame('TEST-CKENT', $responseBody->user_id);
         $this->assertSame('TEST-CLARK', $responseBody->firstname);
         $this->assertSame('TEST-KENT', $responseBody->lastname);
@@ -52,6 +55,11 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
         $this->assertSame(null, $responseBody->mail);
         $this->assertSame(null, $responseBody->initials);
         $this->assertSame(null, $responseBody->thumbprint);
+    }
+
+    public function testUpdate()
+    {
+        $userController = new \Core\Controllers\UserController();
 
         //  UPDATE
         $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
@@ -67,7 +75,7 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
         ];
         $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
 
-        $response     = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' => $id]);
+        $response     = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]);
         $responseBody = json_decode((string)$response->getBody());
 
         $this->assertSame(_USER_UPDATED, $responseBody->success);
@@ -75,10 +83,10 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
         //  READ
         $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
         $request        = \Slim\Http\Request::createFromEnvironment($environment);
-        $response     = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]);
+        $response     = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => self::$id]);
         $responseBody = json_decode((string)$response->getBody());
 
-        $this->assertSame($id, $responseBody->id);
+        $this->assertSame(self::$id, $responseBody->id);
         $this->assertSame('TEST-CKENT', $responseBody->user_id);
         $this->assertSame('TEST-CLARK2', $responseBody->firstname);
         $this->assertSame('TEST-KENT2', $responseBody->lastname);
@@ -88,22 +96,27 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
         $this->assertSame('ck@dailyP.com', $responseBody->mail);
         $this->assertSame('CK', $responseBody->initials);
         $this->assertSame(null, $responseBody->thumbprint);
+    }
+
+    public function testDelete()
+    {
+        $userController = new \Core\Controllers\UserController();
 
         //  DELETE
         $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
         $request        = \Slim\Http\Request::createFromEnvironment($environment);
-        $response     = $userController->delete($request, new \Slim\Http\Response(), ['id' => $id]);
-        $responseBody = json_decode((string)$response->getBody());
+        $response       = $userController->delete($request, new \Slim\Http\Response(), ['id' => self::$id]);
+        $responseBody   = json_decode((string)$response->getBody());
 
         $this->assertSame(_DELETED_USER, $responseBody->success);
 
         //  READ
         $environment    = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
         $request        = \Slim\Http\Request::createFromEnvironment($environment);
-        $response     = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]);
-        $responseBody = json_decode((string)$response->getBody());
+        $response       = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => self::$id]);
+        $responseBody   = json_decode((string)$response->getBody());
 
-        $this->assertSame($id, $responseBody->id);
+        $this->assertSame(self::$id, $responseBody->id);
         $this->assertSame('TEST-CKENT', $responseBody->user_id);
         $this->assertSame('TEST-CLARK2', $responseBody->firstname);
         $this->assertSame('TEST-KENT2', $responseBody->lastname);
@@ -118,7 +131,8 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
         DatabaseModel::delete([
             'table' => 'users',
             'where' => ['id = ?'],
-            'data'  => [$id]
+            'data'  => [self::$id]
         ]);
     }
+
 }
diff --git a/phpunit.xml b/phpunit.xml
index f4458f53b4b..22fa45e8893 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -3,7 +3,9 @@
     <testsuites>
         <testsuite name="Maarch Core Test Suite">
             <!--directory>core/Test</directory-->
+            <file>core/Test/UserControllerTest.php</file>
             <file>core/Test/StatusControllerTest.php</file>
+            <file>core/Test/PriorityControllerTest.php</file>
         </testsuite>
     </testsuites>
     <filter>
-- 
GitLab