xref: /webtrees/tests/app/SurnameTradition/LithuanianSurnameTraditionTest.php (revision 5c48bcd62613a083ce0d1998e379b7010eee8985)
1<?php
2/**
3 * webtrees: online genealogy
4 * Copyright (C) 2019 webtrees development team
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16declare(strict_types=1);
17
18namespace Fisharebest\Webtrees\SurnameTradition;
19
20/**
21 * Test harness for the class SpanishSurnameTradition
22 */
23class LithuanianSurnameTraditionTest extends \Fisharebest\Webtrees\TestCase
24{
25    /** @var SurnameTraditionInterface */
26    private $surname_tradition;
27
28    /**
29     * Prepare the environment for these tests
30     *
31     * @return void
32     */
33    protected function setUp(): void
34    {
35        parent::setUp();
36
37        $this->surname_tradition = new LithuanianSurnameTradition();
38    }
39
40    /**
41     * Test whether married surnames are used
42     *
43     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
44     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
45     *
46     * @return void
47     */
48    public function testMarriedSurnames(): void
49    {
50        $this->assertSame(true, $this->surname_tradition->hasMarriedNames());
51    }
52
53    /**
54     * Test whether surnames are used
55     *
56     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
57     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
58     *
59     * @return void
60     */
61    public function testSurnames(): void
62    {
63        $this->assertSame(true, $this->surname_tradition->hasSurnames());
64    }
65
66    /**
67     * Test new son names
68     *
69     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
70     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
71     *
72     * @return void
73     */
74    public function testNewSonNames(): void
75    {
76        $this->assertSame(
77            [
78                'NAME' => '/White/',
79                'SURN' => 'White',
80            ],
81            $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'M')
82        );
83    }
84
85    /**
86     * Test new daughter names
87     *
88     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
89     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
90     *
91     * @return void
92     */
93    public function testNewDaughterNames(): void
94    {
95        $this->assertSame(
96            [
97                'NAME' => '/White/',
98                'SURN' => 'White',
99            ],
100            $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'F')
101        );
102    }
103
104    /**
105     * Test new daughter names
106     *
107     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
108     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
109     *
110     * @return void
111     */
112    public function testNewDaughterNamesInflected(): void
113    {
114        $this->assertSame(
115            [
116                'NAME' => '/Whitaitė/',
117                'SURN' => 'Whita',
118            ],
119            $this->surname_tradition->newChildNames('John /Whita/', 'Mary /Black/', 'F')
120        );
121        $this->assertSame(
122            [
123                'NAME' => '/Whitaitė/',
124                'SURN' => 'Whitas',
125            ],
126            $this->surname_tradition->newChildNames('John /Whitas/', 'Mary /Black/', 'F')
127        );
128        $this->assertSame(
129            [
130                'NAME' => '/Whitytė/',
131                'SURN' => 'Whitis',
132            ],
133            $this->surname_tradition->newChildNames('John /Whitis/', 'Mary /Black/', 'F')
134        );
135        $this->assertSame(
136            [
137                'NAME' => '/Whitytė/',
138                'SURN' => 'Whitys',
139            ],
140            $this->surname_tradition->newChildNames('John /Whitys/', 'Mary /Black/', 'F')
141        );
142        $this->assertSame(
143            [
144                'NAME' => '/Whitiūtė/',
145                'SURN' => 'Whitius',
146            ],
147            $this->surname_tradition->newChildNames('John /Whitius/', 'Mary /Black/', 'F')
148        );
149        $this->assertSame(
150            [
151                'NAME' => '/Whitutė/',
152                'SURN' => 'Whitus',
153            ],
154            $this->surname_tradition->newChildNames('John /Whitus/', 'Mary /Black/', 'F')
155        );
156    }
157
158    /**
159     * Test new child names
160     *
161     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
162     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
163     *
164     * @return void
165     */
166    public function testNewChildNames(): void
167    {
168        $this->assertSame(
169            [
170                'NAME' => '/White/',
171                'SURN' => 'White',
172            ],
173            $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'U')
174        );
175    }
176
177    /**
178     * Test new child names
179     *
180     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
181     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
182     *
183     * @return void
184     */
185    public function testNewChildNamesWithNoParentsNames(): void
186    {
187        $this->assertSame(
188            ['NAME' => '//'],
189            $this->surname_tradition->newChildNames('', '', 'U')
190        );
191    }
192
193    /**
194     * Test new father names
195     *
196     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
197     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
198     *
199     * @return void
200     */
201    public function testNewFatherNames(): void
202    {
203        $this->assertSame(
204            [
205                'NAME' => '/White/',
206                'SURN' => 'White',
207            ],
208            $this->surname_tradition->newParentNames('John /White/', 'M')
209        );
210    }
211
212    /**
213     * Test new father names
214     *
215     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
216     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
217     *
218     * @return void
219     */
220    public function testNewFatherNamesInflected(): void
221    {
222        $this->assertSame(
223            [
224                'NAME' => '/Whitas/',
225                'SURN' => 'Whitas',
226            ],
227            $this->surname_tradition->newParentNames('Mary /Whitaitė/', 'M')
228        );
229        $this->assertSame(
230            [
231                'NAME' => '/Whitis/',
232                'SURN' => 'Whitis',
233            ],
234            $this->surname_tradition->newParentNames('Mary /Whitytė/', 'M')
235        );
236        $this->assertSame(
237            [
238                'NAME' => '/Whitius/',
239                'SURN' => 'Whitius',
240            ],
241            $this->surname_tradition->newParentNames('Mary /Whitiūtė/', 'M')
242        );
243        $this->assertSame(
244            [
245                'NAME' => '/Whitus/',
246                'SURN' => 'Whitus',
247            ],
248            $this->surname_tradition->newParentNames('Mary /Whitutė/', 'M')
249        );
250    }
251
252    /**
253     * Test new mother names
254     *
255     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
256     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
257     *
258     * @return void
259     */
260    public function testNewMotherNames(): void
261    {
262        $this->assertSame(
263            ['NAME' => '//'],
264            $this->surname_tradition->newParentNames('John /White/', 'F')
265        );
266    }
267
268    /**
269     * Test new parent names
270     *
271     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
272     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
273     *
274     * @return void
275     */
276    public function testNewParentNames(): void
277    {
278        $this->assertSame(
279            ['NAME' => '//'],
280            $this->surname_tradition->newParentNames('John /White/', 'U')
281        );
282    }
283
284    /**
285     * Test new husband names
286     *
287     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
288     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
289     *
290     * @return void
291     */
292    public function testNewHusbandNames(): void
293    {
294        $this->assertSame(
295            ['NAME' => '//'],
296            $this->surname_tradition->newSpouseNames('Mary /Black/', 'M')
297        );
298    }
299
300    /**
301     * Test new wife names
302     *
303     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
304     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
305     *
306     * @return void
307     */
308    public function testNewWifeNames(): void
309    {
310        $this->assertSame(
311            [
312                'NAME'   => '//',
313                '_MARNM' => '/White/',
314            ],
315            $this->surname_tradition->newSpouseNames('John /White/', 'F')
316        );
317    }
318
319    /**
320     * Test new spouse names
321     *
322     * @covers \Fisharebest\Webtrees\SurnameTradition\LithuanianSurnameTradition
323     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
324     *
325     * @return void
326     */
327    public function testNewSpouseNames(): void
328    {
329        $this->assertSame(
330            ['NAME' => '//'],
331            $this->surname_tradition->newSpouseNames('Chris /Green/', 'U')
332        );
333    }
334}
335