From 332b992a06cbe93b3e208dfc488d66c1d9c04abb Mon Sep 17 00:00:00 2001
From: Julien LE GALL <julien.legall@libriciel.coop>
Date: Fri, 21 Mar 2025 14:34:11 +0100
Subject: [PATCH] centralisation de l ajout de _0.xml au nom de fichier xml

---
 .../actes/class/ActesTransaction.class.php    | 19 +------
 .../module/actes/ActesTransactionTest.php     | 55 ++++++++++++++++---
 2 files changed, 51 insertions(+), 23 deletions(-)

diff --git a/public.ssl/modules/actes/class/ActesTransaction.class.php b/public.ssl/modules/actes/class/ActesTransaction.class.php
index 73661d143..df6aa236e 100644
--- a/public.ssl/modules/actes/class/ActesTransaction.class.php
+++ b/public.ssl/modules/actes/class/ActesTransaction.class.php
@@ -614,6 +614,9 @@ class ActesTransaction extends DataObject
             return false;
         }
 
+        $xml_name .= "_0.xml";
+        $this->xmlFileName = $xml_name;
+
         if (!Helpers :: createDirTree(dirname($this->rootDir . "/" . $this->xmlFileName))) {
             $this->errorMsg = "Erreur système de fichiers (createDirTree).";
             return false;
@@ -639,10 +642,6 @@ class ActesTransaction extends DataObject
    */
     public function generateActeXMLFile(string $xml_name): false|string
     {
-        $xml_name .= "_0.xml";
-
-        $this->xmlFileName = $xml_name;
-
         $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
         $xml .= "<actes:Acte\n";
         $xml .= "xmlns:actes=\"http://www.interieur.gouv.fr/ACTES#v1.1-20040216\"\n";
@@ -697,9 +696,6 @@ class ActesTransaction extends DataObject
 
     public function generateReponseCourrierXMLFile($xml_name)
     {
-        $xml_name .= "_0.xml";
-        $this->xmlFileName = $xml_name;
-
         switch ($this->getType()) {
             case TypeTransaction::CourrierSimple:
                 $root =  "ReponseCourrierSimple";
@@ -769,10 +765,6 @@ class ActesTransaction extends DataObject
    */
     public function generateCancelXMLFile($xml_name)
     {
-        $xml_name .= "_0.xml";
-
-        $this->xmlFileName = $xml_name;
-
         $xml = null;
 
         if (!empty($this->related_transaction->unique_id)) {
@@ -797,11 +789,6 @@ class ActesTransaction extends DataObject
    */
     public function generateClassifRequestXMLFile($xml_name)
     {
-        $xml_name .= "_0.xml";
-
-        $this->xmlFileName = $xml_name;
-
-
         $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
         $xml .= "<actes:DemandeClassification \n";
         $xml .= "xmlns:actes=\"http://www.interieur.gouv.fr/ACTES#v1.1-20040216\"\n";
diff --git a/test/PHPUnit/public.ssl/module/actes/ActesTransactionTest.php b/test/PHPUnit/public.ssl/module/actes/ActesTransactionTest.php
index 913cd27ba..63242c912 100644
--- a/test/PHPUnit/public.ssl/module/actes/ActesTransactionTest.php
+++ b/test/PHPUnit/public.ssl/module/actes/ActesTransactionTest.php
@@ -99,11 +99,13 @@ class ActesTransactionTest extends S2lowTestCase
 
     public function testAddFileActePDF()
     {
+        $this->actesTransaction->setType(TypeTransaction::TransmissionActe);
         $this->addActePDF();
     }
 
     public function testAddAnnexe()
     {
+        $this->actesTransaction->setType(TypeTransaction::TransmissionActe);
         $this->addActePDF();
         $this->addAnnexePDF();
         $this->addAnnexePDF();
@@ -146,6 +148,7 @@ class ActesTransactionTest extends S2lowTestCase
 
     public function testAddActesXML()
     {
+        $this->actesTransaction->setType(TypeTransaction::TransmissionActe);
         $this->setActesBudgetaire();
         $this->addActeXML();
     }
@@ -178,6 +181,7 @@ class ActesTransactionTest extends S2lowTestCase
 
     public function testAttachmentXML()
     {
+        $this->actesTransaction->setType(TypeTransaction::TransmissionActe);
         $this->setActesBudgetaire();
         $this->addActePDF();
         $dest_filename2 = mt_rand(0, mt_getrandmax());
@@ -187,6 +191,7 @@ class ActesTransactionTest extends S2lowTestCase
 
     public function testAttachmentXMLNoBudgetaire()
     {
+        $this->actesTransaction->setType(TypeTransaction::TransmissionActe);
         $this->addActePDF();
         $dest_filename2 = mt_rand(0, mt_getrandmax());
         $this->assertTrue($this->actesTransaction->addAttachmentFile("vide.xml", "toto/" . $dest_filename2, $this->xml_filepath));
@@ -205,6 +210,7 @@ class ActesTransactionTest extends S2lowTestCase
      */
     public function testgenerateActeXMLFile()
     {
+        $this->actesTransaction->setType(TypeTransaction::TransmissionActe);
         $this->addActePDF();
         $this->actesTransaction->set('decision_date', "2013-04-05");
         $this->actesTransaction->set('classification_date', "2013-04-05");
@@ -264,13 +270,16 @@ class ActesTransactionTest extends S2lowTestCase
         $xml_name =  $this->actesTransaction->getStdFileName($env, false);
 
         $this->actesTransaction->generateMessageXMLFile($xml_name);
-
         $this->actesTransaction->save();
 
         $transaction_id = $this->actesTransaction->getId();
 
         $actesIncludedFileSQL = $this->getObjectInstancier()->get(ActesIncludedFileSQL::class);
         $file_list = $actesIncludedFileSQL->getAll($transaction_id);
+        self::assertEquals(
+            $xml_name . '_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
         $this->assertEquals("99_AU", $file_list[2]['code_pj']);
         $this->assertEquals("99_AU-001-000000000-20170829-TEST-DE-1-1_2.pdf", $file_list[2]['filename']);
     }
@@ -416,8 +425,12 @@ class ActesTransactionTest extends S2lowTestCase
         $env->set('department', '001');
         $env->set('siren', '000000000');
 
-        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test.xml'));
+        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test'));
         $file_path = ACTES_FILES_UPLOAD_ROOT . '/' . $this->actesTransaction->get('xmlFileName');
+        static::assertSame(
+            'test_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
         static::assertFileExists($file_path);
         // On vérifie que le type de message généré est correct
         static::assertStringContainsString('<actes:Acte', file_get_contents($file_path));
@@ -447,8 +460,12 @@ class ActesTransactionTest extends S2lowTestCase
         $this->actesTransaction->set('related_transaction', $relatedTransaction);
 
 
-        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test.xml'));
+        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test'));
         $file_path = ACTES_FILES_UPLOAD_ROOT . '/' . $this->actesTransaction->get('xmlFileName');
+        static::assertSame(
+            'test_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
         static::assertFileExists($file_path);
         // On vérifie que le type de message généré est correct
         static::assertStringContainsString('<actes:' . $expectedRoot, file_get_contents($file_path));
@@ -483,8 +500,12 @@ class ActesTransactionTest extends S2lowTestCase
 
         $this->actesTransaction->set('related_transaction', $relatedTransaction);
 
-        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test.xml'));
+        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test'));
         $file_path = ACTES_FILES_UPLOAD_ROOT . '/' . $this->actesTransaction->get('xmlFileName');
+        static::assertSame(
+            'test_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
         static::assertFileExists($file_path);
         $file_content = file_get_contents($file_path);
         // On vérifie que le type de message généré est correct
@@ -505,8 +526,12 @@ class ActesTransactionTest extends S2lowTestCase
         $env->set('department', '001');
         $env->set('siren', '000000000');
 
-        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test.xml'));
+        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test'));
         $file_path = ACTES_FILES_UPLOAD_ROOT . '/' . $this->actesTransaction->get('xmlFileName');
+        static::assertEquals(
+            'test_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
         static::assertFileExists($file_path);
         $file_content = file_get_contents($file_path);
         // On vérifie que le type de message généré est correct
@@ -538,8 +563,12 @@ class ActesTransactionTest extends S2lowTestCase
 
         $this->actesTransaction->set('related_transaction', $relatedTransaction);
 
-        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test.xml'));
+        static::assertTrue($this->actesTransaction->generateMessageXMLFile('test'));
         $file_path = ACTES_FILES_UPLOAD_ROOT . '/' . $this->actesTransaction->get('xmlFileName');
+        static::assertSame(
+            'test_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
         static::assertFileExists($file_path);
         $file_content = file_get_contents($file_path);
         // On vérifie que le type de message généré est correct
@@ -555,7 +584,7 @@ class ActesTransactionTest extends S2lowTestCase
             basename($this->actesTransaction->files['attachment'][0]['name']),
             $file_content
         );
-        unlink('/data/tdt-workspace/actes/uploads/test.xml_0.xml');
+        unlink('/data/tdt-workspace/actes/uploads/test_0.xml');
     }
 
     /**
@@ -655,10 +684,18 @@ class ActesTransactionTest extends S2lowTestCase
         unlink(ACTES_FILES_UPLOAD_ROOT . '/testFiles/' . '001-000000000-20170130-TEST42-DE-3-3_1.pdf');
         rmdir(ACTES_FILES_UPLOAD_ROOT . '/testFiles/');
 
+        static::assertSame(
+            $xml_name . '_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
         self::assertSame(
             TypeTransaction::DemandePieceComplementaire->value,
             $transaction->get('type')
         );
+        self::assertSame(
+            $xml_name . '_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
 
         self::assertSame(null, $transaction->getErrorMsg());
         self::assertSame(
@@ -728,6 +765,10 @@ class ActesTransactionTest extends S2lowTestCase
             TypeTransaction::DemandePieceComplementaire->value,
             $transaction->get('type')
         );
+        self::assertSame(
+            $xml_name . '_0.xml',
+            $this->actesTransaction->get('xmlFileName')
+        );
 
         //TODO : il y a un bug
         // 001-000000000-20170130-TEST42-DE-3-4_2.pdf devrait être dans les annexes
-- 
GitLab