From 898526eeb23b1a10e852c666242149f44b673fcb Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Tue, 27 Aug 2019 11:21:42 +0200
Subject: [PATCH] Refactor creazione nuovo filtro o aggiunta estensione a filtro precedente

---
 tests/Vola/UploadFile/FilesFilterTest.php |   25 +++++++-----
 src/Vola/UploadFile/FilesFilter.class.php |   38 +++++++++++++-----
 2 files changed, 42 insertions(+), 21 deletions(-)

diff --git a/src/Vola/UploadFile/FilesFilter.class.php b/src/Vola/UploadFile/FilesFilter.class.php
index c0956d4..4d6d962 100644
--- a/src/Vola/UploadFile/FilesFilter.class.php
+++ b/src/Vola/UploadFile/FilesFilter.class.php
@@ -12,10 +12,10 @@
     public function toJson()
     {
 
-        $temp = array ();
+        $temp = array();
 
         /** @var FilterExt $filtro */
-        foreach ($this->filtro as $filtro){
+        foreach ($this->filtro as $filtro) {
             $temp[] = $filtro->getFilterObj();
         }
 
@@ -24,15 +24,12 @@
 
     public function addExt($extension = '')
     {
-        if ($extension != '') {
-            $titolo = $this->decodeTitolo($extension);
-            if ($titolo != null) {
-                if($this->filtro[$titolo] instanceof FilterExt){
-                    $this->filtro[$titolo]->addExt($extension);
-                } else {
-                    $filtro = new FilterExt($titolo, $extension);
-                    $this->filtro[$titolo] = $filtro;
-                }
+        $titolo = $this->decodeTitolo($extension);
+        if ($titolo != null) {
+            if ($this->filtro[$titolo] instanceof FilterExt) {
+                $this->addExtensionToFilter($titolo, $extension);
+            } else {
+                $this->createFilter($titolo, $extension);
             }
         }
         return $this;
@@ -59,4 +56,23 @@
         return $titolo;
     }
 
+    /**
+     * @param $titolo
+     * @param $extension
+     */
+    private function createFilter($titolo, $extension)
+    {
+        $filtro = new FilterExt($titolo, $extension);
+        $this->filtro[$titolo] = $filtro;
+    }
+
+    /**
+     * @param $titolo
+     * @param $extension
+     */
+    private function addExtensionToFilter($titolo, $extension)
+    {
+        $this->filtro[$titolo]->addExt($extension);
+    }
+
 }
\ No newline at end of file
diff --git a/tests/Vola/UploadFile/FilesFilterTest.php b/tests/Vola/UploadFile/FilesFilterTest.php
index 7c32d26..5d35f97 100644
--- a/tests/Vola/UploadFile/FilesFilterTest.php
+++ b/tests/Vola/UploadFile/FilesFilterTest.php
@@ -13,7 +13,8 @@
      * Set up fixture, inizializzazione dei test.
      * Eseguito prima di ogni test
      */
-    protected function setUp() {
+    protected function setUp()
+    {
         $this->object = new FilesFilter();
     }
 
@@ -21,7 +22,8 @@
      * Tears down the fixture, for example, closes a network connection.
      * This method is called after a test is executed.
      */
-    protected function tearDown() {
+    protected function tearDown()
+    {
 
     }
 
@@ -41,15 +43,18 @@
 
     }
 
-    public function addExtension(){
+    public function addExtension()
+    {
         return [
-          [[], '[]'],
-          [['fasullo'], '[]'],
-          [['gif'], '[{"title":"Image files","extensions":"gif"}]'],
-          [['doc'], '[{"title":"Documenti","extensions":"doc"}]'],
-          [['DOC'], '[{"title":"Documenti","extensions":"DOC"}]'],
-          [['txt'], '[{"title":"Documenti","extensions":"txt"}]'],
-          [['DOc', 'gif'],'[{"title":"Documenti","extensions":"DOc"},{"title":"Image files","extensions":"gif"}]'],
+            [[], '[]'],
+            [['fasullo'], '[]'],
+            [['gif'], '[{"title":"Image files","extensions":"gif"}]'],
+            [['doc'], '[{"title":"Documenti","extensions":"doc"}]'],
+            [['DOC'], '[{"title":"Documenti","extensions":"DOC"}]'],
+            [['txt'], '[{"title":"Documenti","extensions":"txt"}]'],
+            [['DOc', 'gif'], '[{"title":"Documenti","extensions":"DOc"},{"title":"Image files","extensions":"gif"}]'],
+            [['txt', 'doc'], '[{"title":"Documenti","extensions":"doc,txt"}]'],
+            [['gif', 'fasullo'], '[{"title":"Image files","extensions":"gif"}]'],
         ];
     }
 

--
Gitblit v1.8.0