]> git.agnieray.net Git - galette.git/commitdiff
Test Adherent::getNameWithCase
authorJohan Cwiklinski <johan@x-tnd.be>
Sat, 16 Oct 2021 07:26:06 +0000 (09:26 +0200)
committerJohan Cwiklinski <johan@x-tnd.be>
Sun, 17 Oct 2021 04:15:40 +0000 (06:15 +0200)
tests/Galette/Entity/tests/units/Adherent.php
tests/GaletteTestCase.php

index c4e5f64c45110d140cf56164a6e3197e96c84242..37637f5d96e248b3a25c885ebe4ca9ef9fb323b7 100644 (file)
@@ -86,6 +86,7 @@ class Adherent extends GaletteTestCase
     {
         parent::beforeTestMethod($testMethod);
         $this->initStatus();
+        $this->initTitles();
 
         $this->default_deps = [
             'picture'   => true,
@@ -626,4 +627,90 @@ class Adherent extends GaletteTestCase
         $this->login->logOut();
         $this->boolean($this->login->isLogged())->isFalse();
     }
+
+    /**
+     * Names provider
+     *
+     * @return array[]
+     */
+    protected function nameCaseProvider(): array
+    {
+        return [
+            [
+                'name' => 'Doe',
+                'surname' => 'John',
+                'title' => false,
+                'id' => false,
+                'nick' => false,
+                'expected' => 'DOE John'
+            ],
+            [
+                'name' => 'Doéè',
+                'surname' => 'John',
+                'title' => false,
+                'id' => false,
+                'nick' => false,
+                'expected' => 'DOÉÈ John'
+            ],
+            [
+                'name' => 'Doe',
+                'surname' => 'John',
+                'title' => new \Galette\Entity\Title(\Galette\Entity\Title::MR),
+                'id' => false,
+                'nick' => false,
+                'expected' => 'Mr. DOE John'
+            ],
+            [
+                'name' => 'Doe',
+                'surname' => 'John',
+                'title' => false,
+                'id' => false,
+                'nick' => 'foo',
+                'expected' => 'DOE John (foo)'
+            ],
+            [
+                'name' => 'Doe',
+                'surname' => 'John',
+                'title' => false,
+                'id' => 42,
+                'nick' => false,
+                'expected' => 'DOE John (42)'
+            ],
+            [
+                'name' => 'Doe',
+                'surname' => 'John',
+                'title' => new \Galette\Entity\Title(\Galette\Entity\Title::MR),
+                'id' => 42,
+                'nick' => 'foo',
+                'expected' => 'Mr. DOE John (foo, 42)'
+            ],
+        ];
+    }
+
+    /**
+     * Test getNameWithCase
+     *
+     * @dataProvider nameCaseProvider
+     *
+     * @param string                      $name     Name
+     * @param string                      $surname  Surname
+     * @param \Galette\Entity\Title|false $title    Title
+     * @param string|false                $id       ID
+     * @param string|false                $nick     Nick
+     * @param  string                      $expected Expected result
+     *
+     * @return void
+     */
+    public function testsGetNameWithCase(string $name, string $surname, $title, $id, $nick, string $expected)
+    {
+        $this->string(
+            \Galette\Entity\Adherent::getNameWithCase(
+                $name,
+                $surname,
+                $title,
+                $id,
+                $nick,
+            )
+        )->isIdenticalTo($expected);
+    }
 }
index 17d2396c5c7549b77e3b24cdd09116d4e7e10650..60c05a3ab549c8233ba987acf0057daccf6e4dc4 100644 (file)
@@ -608,4 +608,18 @@ abstract class GaletteTestCase extends atoum
             $this->boolean($res)->isTrue();
         }
     }
+
+    /**
+     * Initialize default titles in database
+     *
+     * @return void
+     */
+    protected function initTitles(): void
+    {
+        $titles = new \Galette\Repository\Titles($this->zdb);
+        if (count($titles->getList($this->zdb)) === 0) {
+            $res = $titles->installInit($this->zdb);
+            $this->boolean($res)->isTrue();
+        }
+    }
 }