xref: /webtrees/tests/app/SurnameTradition/PolishSurnameTraditionTest.php (revision ac5f8ed16774e57c5f89faca528d55bc4a3971e1)
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 PolishSurnameTraditionTest 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 PolishSurnameTradition();
38    }
39
40    /**
41     * Test whether married surnames are used
42     *
43     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
44     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
45     *
46     * @return void
47     */
48    public function testMarriedSurnames(): void
49    {
50        $this->assertTrue($this->surname_tradition->hasMarriedNames());
51    }
52
53    /**
54     * Test whether surnames are used
55     *
56     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
57     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
58     *
59     * @return void
60     */
61    public function testSurnames(): void
62    {
63        $this->assertTrue($this->surname_tradition->hasSurnames());
64    }
65
66    /**
67     * Test new son names
68     *
69     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
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\PolishSurnameTradition
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\PolishSurnameTradition
108     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
109     *
110     * @return void
111     */
112    public function testNewDaughterNamesInflected(): void
113    {
114        $this->assertSame(
115            [
116                'NAME' => '/Whitecka/',
117                'SURN' => 'Whitecki',
118            ],
119            $this->surname_tradition->newChildNames('John /Whitecki/', 'Mary /Black/', 'F')
120        );
121        $this->assertSame(
122            [
123                'NAME' => '/Whitedzka/',
124                'SURN' => 'Whitedzki',
125            ],
126            $this->surname_tradition->newChildNames('John /Whitedzki/', 'Mary /Black/', 'F')
127        );
128        $this->assertSame(
129            [
130                'NAME' => '/Whiteska/',
131                'SURN' => 'Whiteski',
132            ],
133            $this->surname_tradition->newChildNames('John /Whiteski/', 'Mary /Black/', 'F')
134        );
135        $this->assertSame(
136            [
137                'NAME' => '/Whiteżka/',
138                'SURN' => 'Whiteżki',
139            ],
140            $this->surname_tradition->newChildNames('John /Whiteżki/', 'Mary /Black/', 'F')
141        );
142    }
143
144    /**
145     * Test new child names
146     *
147     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
148     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
149     *
150     * @return void
151     */
152    public function testNewChildNames(): void
153    {
154        $this->assertSame(
155            [
156                'NAME' => '/White/',
157                'SURN' => 'White',
158            ],
159            $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'U')
160        );
161    }
162
163    /**
164     * Test new child names
165     *
166     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
167     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
168     *
169     * @return void
170     */
171    public function testNewChildNamesWithNoParentsNames(): void
172    {
173        $this->assertSame(
174            ['NAME' => '//'],
175            $this->surname_tradition->newChildNames('', '', 'U')
176        );
177    }
178
179    /**
180     * Test new father names
181     *
182     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
183     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
184     *
185     * @return void
186     */
187    public function testNewFatherNames(): void
188    {
189        $this->assertSame(
190            [
191                'NAME' => '/White/',
192                'SURN' => 'White',
193            ],
194            $this->surname_tradition->newParentNames('John /White/', 'M')
195        );
196    }
197
198    /**
199     * Test new father names
200     *
201     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
202     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
203     *
204     * @return void
205     */
206    public function testNewFatherNamesInflected(): void
207    {
208        $this->assertSame(
209            [
210                'NAME' => '/Whitecki/',
211                'SURN' => 'Whitecki',
212            ],
213            $this->surname_tradition->newParentNames('Mary /Whitecka/', 'M')
214        );
215        $this->assertSame(
216            [
217                'NAME' => '/Whitedzki/',
218                'SURN' => 'Whitedzki',
219            ],
220            $this->surname_tradition->newParentNames('Mary /Whitedzka/', 'M')
221        );
222        $this->assertSame(
223            [
224                'NAME' => '/Whiteski/',
225                'SURN' => 'Whiteski',
226            ],
227            $this->surname_tradition->newParentNames('Mary /Whiteska/', 'M')
228        );
229        $this->assertSame(
230            [
231                'NAME' => '/Whiteżki/',
232                'SURN' => 'Whiteżki',
233            ],
234            $this->surname_tradition->newParentNames('Mary /Whiteżka/', 'M')
235        );
236    }
237
238    /**
239     * Test new mother names
240     *
241     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
242     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
243     *
244     * @return void
245     */
246    public function testNewMotherNames(): void
247    {
248        $this->assertSame(
249            ['NAME' => '//'],
250            $this->surname_tradition->newParentNames('John /White/', 'F')
251        );
252    }
253
254    /**
255     * Test new parent names
256     *
257     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
258     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
259     *
260     * @return void
261     */
262    public function testNewParentNames(): void
263    {
264        $this->assertSame(
265            ['NAME' => '//'],
266            $this->surname_tradition->newParentNames('John /White/', 'U')
267        );
268    }
269
270    /**
271     * Test new husband names
272     *
273     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
274     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
275     *
276     * @return void
277     */
278    public function testNewHusbandNames(): void
279    {
280        $this->assertSame(
281            ['NAME' => '//'],
282            $this->surname_tradition->newSpouseNames('Mary /Black/', 'M')
283        );
284    }
285
286    /**
287     * Test new wife names
288     *
289     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
290     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
291     *
292     * @return void
293     */
294    public function testNewWifeNames(): void
295    {
296        $this->assertSame(
297            [
298                'NAME'   => '//',
299                '_MARNM' => '/White/',
300            ],
301            $this->surname_tradition->newSpouseNames('John /White/', 'F')
302        );
303    }
304
305    /**
306     * Test new spouse names
307     *
308     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
309     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
310     *
311     * @return void
312     */
313    public function testNewSpouseNames(): void
314    {
315        $this->assertSame(
316            ['NAME' => '//'],
317            $this->surname_tradition->newSpouseNames('Chris /Green/', 'U')
318        );
319    }
320}
321