xref: /webtrees/tests/app/SurnameTradition/SpanishSurnameTraditionTest.php (revision 89f7189b61a494347591c99bdb92afb7d8b66e1b)
1323788f4SGreg Roach<?php
23976b470SGreg Roach
3323788f4SGreg Roach/**
4323788f4SGreg Roach * webtrees: online genealogy
5*89f7189bSGreg Roach * Copyright (C) 2021 webtrees development team
6323788f4SGreg Roach * This program is free software: you can redistribute it and/or modify
7323788f4SGreg Roach * it under the terms of the GNU General Public License as published by
8323788f4SGreg Roach * the Free Software Foundation, either version 3 of the License, or
9323788f4SGreg Roach * (at your option) any later version.
10323788f4SGreg Roach * This program is distributed in the hope that it will be useful,
11323788f4SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
12323788f4SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13323788f4SGreg Roach * GNU General Public License for more details.
14323788f4SGreg Roach * You should have received a copy of the GNU General Public License
15*89f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
16323788f4SGreg Roach */
17fcfa147eSGreg Roach
18e7f56f2aSGreg Roachdeclare(strict_types=1);
19e7f56f2aSGreg Roach
2084e2cf4eSGreg Roachnamespace Fisharebest\Webtrees\SurnameTradition;
21c1010edaSGreg Roach
223cfcc809SGreg Roachuse Fisharebest\Webtrees\TestCase;
233cfcc809SGreg Roach
24323788f4SGreg Roach/**
25323788f4SGreg Roach * Test harness for the class SpanishSurnameTradition
26323788f4SGreg Roach */
273cfcc809SGreg Roachclass SpanishSurnameTraditionTest extends TestCase
28c1010edaSGreg Roach{
29323788f4SGreg Roach    /** @var SurnameTraditionInterface */
30323788f4SGreg Roach    private $surname_tradition;
31323788f4SGreg Roach
32323788f4SGreg Roach    /**
33323788f4SGreg Roach     * Prepare the environment for these tests
3452348eb8SGreg Roach     *
3552348eb8SGreg Roach     * @return void
36323788f4SGreg Roach     */
375c48bcd6SGreg Roach    protected function setUp(): void
38c1010edaSGreg Roach    {
390115bc16SGreg Roach        parent::setUp();
400115bc16SGreg Roach
4174d6dc0eSGreg Roach        $this->surname_tradition = new SpanishSurnameTradition();
42323788f4SGreg Roach    }
43323788f4SGreg Roach
44323788f4SGreg Roach    /**
45323788f4SGreg Roach     * Test whether married surnames are used
4617d74f3aSGreg Roach     *
4715d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
4852348eb8SGreg Roach     *
4952348eb8SGreg Roach     * @return void
50323788f4SGreg Roach     */
519b802b22SGreg Roach    public function testMarriedSurnames(): void
52c1010edaSGreg Roach    {
535e933c21SGreg Roach        self::assertFalse($this->surname_tradition->hasMarriedNames());
54323788f4SGreg Roach    }
55323788f4SGreg Roach
56323788f4SGreg Roach    /**
57c1ec7145SGreg Roach     * Test whether surnames are used
5817d74f3aSGreg Roach     *
5915d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
6052348eb8SGreg Roach     *
6152348eb8SGreg Roach     * @return void
62c1ec7145SGreg Roach     */
639b802b22SGreg Roach    public function testSurnames(): void
64c1010edaSGreg Roach    {
655e933c21SGreg Roach        self::assertTrue($this->surname_tradition->hasSurnames());
66c1ec7145SGreg Roach    }
67c1ec7145SGreg Roach
68c1ec7145SGreg Roach    /**
69323788f4SGreg Roach     * Test new son names
7017d74f3aSGreg Roach     *
7115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
7252348eb8SGreg Roach     *
7352348eb8SGreg Roach     * @return void
74323788f4SGreg Roach     */
759b802b22SGreg Roach    public function testNewSonNames(): void
76c1010edaSGreg Roach    {
775e933c21SGreg Roach        self::assertSame(
78c1010edaSGreg Roach            [
79c1010edaSGreg Roach                'NAME' => '/Garcia/ /Ruiz/',
80c1010edaSGreg Roach                'SURN' => 'Garcia,Ruiz',
81c1010edaSGreg Roach            ],
82323788f4SGreg Roach            $this->surname_tradition->newChildNames('Gabriel /Garcia/ /Iglesias/', 'Maria /Ruiz/ /Lorca/', 'M')
83323788f4SGreg Roach        );
84323788f4SGreg Roach    }
85323788f4SGreg Roach
86323788f4SGreg Roach    /**
87323788f4SGreg Roach     * Test new daughter names
8817d74f3aSGreg Roach     *
8915d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
9052348eb8SGreg Roach     *
9152348eb8SGreg Roach     * @return void
92323788f4SGreg Roach     */
939b802b22SGreg Roach    public function testNewDaughterNames(): void
94c1010edaSGreg Roach    {
955e933c21SGreg Roach        self::assertSame(
96c1010edaSGreg Roach            [
97c1010edaSGreg Roach                'NAME' => '/Garcia/ /Ruiz/',
98c1010edaSGreg Roach                'SURN' => 'Garcia,Ruiz',
99c1010edaSGreg Roach            ],
100323788f4SGreg Roach            $this->surname_tradition->newChildNames('Gabriel /Garcia/ /Iglesias/', 'Maria /Ruiz/ /Lorca/', 'M')
101323788f4SGreg Roach        );
102323788f4SGreg Roach    }
103323788f4SGreg Roach
104323788f4SGreg Roach    /**
105323788f4SGreg Roach     * Test new child names
10617d74f3aSGreg Roach     *
10715d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
10852348eb8SGreg Roach     *
10952348eb8SGreg Roach     * @return void
110323788f4SGreg Roach     */
1119b802b22SGreg Roach    public function testNewChildNames(): void
112c1010edaSGreg Roach    {
1135e933c21SGreg Roach        self::assertSame(
114c1010edaSGreg Roach            [
115c1010edaSGreg Roach                'NAME' => '/Garcia/ /Ruiz/',
116c1010edaSGreg Roach                'SURN' => 'Garcia,Ruiz',
117c1010edaSGreg Roach            ],
118323788f4SGreg Roach            $this->surname_tradition->newChildNames('Gabriel /Garcia/ /Iglesias/', 'Maria /Ruiz/ /Lorca/', 'M')
119323788f4SGreg Roach        );
120323788f4SGreg Roach    }
121323788f4SGreg Roach
122323788f4SGreg Roach    /**
123323788f4SGreg Roach     * Test new child names
12417d74f3aSGreg Roach     *
12515d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
12652348eb8SGreg Roach     *
12752348eb8SGreg Roach     * @return void
128323788f4SGreg Roach     */
1299b802b22SGreg Roach    public function testNewChildNamesWithNoParentsNames(): void
130c1010edaSGreg Roach    {
1315e933c21SGreg Roach        self::assertSame(
132c1010edaSGreg Roach            [
133c1010edaSGreg Roach                'NAME' => '// //',
134c1010edaSGreg Roach                'SURN' => '',
135c1010edaSGreg Roach            ],
1361677a03aSGreg Roach            $this->surname_tradition->newChildNames('', '', 'U')
1371677a03aSGreg Roach        );
1381677a03aSGreg Roach    }
1391677a03aSGreg Roach
1401677a03aSGreg Roach    /**
1411677a03aSGreg Roach     * Test new child names
14217d74f3aSGreg Roach     *
14315d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
14452348eb8SGreg Roach     *
14552348eb8SGreg Roach     * @return void
1461677a03aSGreg Roach     */
1479b802b22SGreg Roach    public function testNewChildNamesCompunds(): void
148c1010edaSGreg Roach    {
1495e933c21SGreg Roach        self::assertSame(
150c1010edaSGreg Roach            [
151c1010edaSGreg Roach                'NAME' => '/Garcia/ /Ruiz/',
152c1010edaSGreg Roach                'SURN' => 'Garcia,Ruiz',
153c1010edaSGreg Roach            ],
154323788f4SGreg Roach            $this->surname_tradition->newChildNames('Gabriel /Garcia Iglesias/', 'Maria /Ruiz Lorca/', 'M')
155323788f4SGreg Roach        );
1565e933c21SGreg Roach        self::assertSame(
157c1010edaSGreg Roach            [
158c1010edaSGreg Roach                'NAME' => '/Garcia/ /Ruiz/',
159c1010edaSGreg Roach                'SURN' => 'Garcia,Ruiz',
160c1010edaSGreg Roach            ],
161323788f4SGreg Roach            $this->surname_tradition->newChildNames('Gabriel /Garcia y Iglesias/', 'Maria /Ruiz y Lorca/', 'M')
162323788f4SGreg Roach        );
163323788f4SGreg Roach    }
164323788f4SGreg Roach
165323788f4SGreg Roach    /**
166323788f4SGreg Roach     * Test new father names
16717d74f3aSGreg Roach     *
16815d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
16952348eb8SGreg Roach     *
17052348eb8SGreg Roach     * @return void
171323788f4SGreg Roach     */
1729b802b22SGreg Roach    public function testNewFatherNames(): void
173c1010edaSGreg Roach    {
1745e933c21SGreg Roach        self::assertSame(
175c1010edaSGreg Roach            [
176c1010edaSGreg Roach                'NAME' => '/Garcia/ //',
177c1010edaSGreg Roach                'SURN' => 'Garcia',
178c1010edaSGreg Roach            ],
179323788f4SGreg Roach            $this->surname_tradition->newParentNames('Gabriel /Garcia/ /Iglesias/', 'M')
180323788f4SGreg Roach        );
181323788f4SGreg Roach    }
182323788f4SGreg Roach
183323788f4SGreg Roach    /**
184323788f4SGreg Roach     * Test new mother names
18517d74f3aSGreg Roach     *
18615d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
18752348eb8SGreg Roach     *
18852348eb8SGreg Roach     * @return void
189323788f4SGreg Roach     */
1909b802b22SGreg Roach    public function testNewMotherNames(): void
191c1010edaSGreg Roach    {
1925e933c21SGreg Roach        self::assertSame(
193c1010edaSGreg Roach            [
194c1010edaSGreg Roach                'NAME' => '/Iglesias/ //',
195c1010edaSGreg Roach                'SURN' => 'Iglesias',
196c1010edaSGreg Roach            ],
197323788f4SGreg Roach            $this->surname_tradition->newParentNames('Gabriel /Garcia/ /Iglesias/', 'F')
198323788f4SGreg Roach        );
199323788f4SGreg Roach    }
200323788f4SGreg Roach
201323788f4SGreg Roach    /**
202323788f4SGreg Roach     * Test new parent names
20317d74f3aSGreg Roach     *
20415d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
20552348eb8SGreg Roach     *
20652348eb8SGreg Roach     * @return void
207323788f4SGreg Roach     */
2089b802b22SGreg Roach    public function testNewParentNames(): void
209c1010edaSGreg Roach    {
2105e933c21SGreg Roach        self::assertSame(
21113abd6f3SGreg Roach            ['NAME' => '// //'],
212323788f4SGreg Roach            $this->surname_tradition->newParentNames('Gabriel /Garcia/ /Iglesias/', 'U')
213323788f4SGreg Roach        );
214323788f4SGreg Roach    }
215323788f4SGreg Roach
216323788f4SGreg Roach    /**
217323788f4SGreg Roach     * Test new husband names
21817d74f3aSGreg Roach     *
21915d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
22052348eb8SGreg Roach     *
22152348eb8SGreg Roach     * @return void
222323788f4SGreg Roach     */
2239b802b22SGreg Roach    public function testNewHusbandNames(): void
224c1010edaSGreg Roach    {
2255e933c21SGreg Roach        self::assertSame(
22613abd6f3SGreg Roach            ['NAME' => '// //'],
227323788f4SGreg Roach            $this->surname_tradition->newSpouseNames('Maria /Ruiz/ /Lorca/', 'M')
228323788f4SGreg Roach        );
229323788f4SGreg Roach    }
230323788f4SGreg Roach
231323788f4SGreg Roach    /**
232323788f4SGreg Roach     * Test new wife names
23317d74f3aSGreg Roach     *
23415d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
23552348eb8SGreg Roach     *
23652348eb8SGreg Roach     * @return void
237323788f4SGreg Roach     */
2389b802b22SGreg Roach    public function testNewWifeNames(): void
239c1010edaSGreg Roach    {
2405e933c21SGreg Roach        self::assertSame(
24113abd6f3SGreg Roach            ['NAME' => '// //'],
242323788f4SGreg Roach            $this->surname_tradition->newSpouseNames('Gabriel /Garcia/ /Iglesias/', 'F')
243323788f4SGreg Roach        );
244323788f4SGreg Roach    }
245323788f4SGreg Roach
246323788f4SGreg Roach    /**
247323788f4SGreg Roach     * Test new spouse names
24817d74f3aSGreg Roach     *
24915d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\SpanishSurnameTradition
25052348eb8SGreg Roach     *
25152348eb8SGreg Roach     * @return void
252323788f4SGreg Roach     */
2539b802b22SGreg Roach    public function testNewSpouseNames(): void
254c1010edaSGreg Roach    {
2555e933c21SGreg Roach        self::assertSame(
25613abd6f3SGreg Roach            ['NAME' => '// //'],
257323788f4SGreg Roach            $this->surname_tradition->newSpouseNames('Gabriel /Garcia/ /Iglesias/', 'U')
258323788f4SGreg Roach        );
259323788f4SGreg Roach    }
260323788f4SGreg Roach}
261