xref: /webtrees/tests/app/SurnameTradition/PolishSurnameTraditionTest.php (revision fcfa147e10aaa6c7ff580c29bd6e5b88666befc1)
1323788f4SGreg Roach<?php
23976b470SGreg Roach
3323788f4SGreg Roach/**
4323788f4SGreg Roach * webtrees: online genealogy
58fcd0d32SGreg Roach * Copyright (C) 2019 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
15323788f4SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>.
16323788f4SGreg Roach */
17*fcfa147eSGreg 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 PolishSurnameTraditionTest 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 PolishSurnameTradition();
42323788f4SGreg Roach    }
43323788f4SGreg Roach
44323788f4SGreg Roach    /**
45323788f4SGreg Roach     * Test whether married surnames are used
4617d74f3aSGreg Roach     *
4715d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
4815d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
4952348eb8SGreg Roach     *
5052348eb8SGreg Roach     * @return void
51323788f4SGreg Roach     */
529b802b22SGreg Roach    public function testMarriedSurnames(): void
53c1010edaSGreg Roach    {
54a32e6421SGreg Roach        $this->assertTrue($this->surname_tradition->hasMarriedNames());
55323788f4SGreg Roach    }
56323788f4SGreg Roach
57323788f4SGreg Roach    /**
58c1ec7145SGreg Roach     * Test whether surnames are used
5917d74f3aSGreg Roach     *
6015d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
6115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
6252348eb8SGreg Roach     *
6352348eb8SGreg Roach     * @return void
64c1ec7145SGreg Roach     */
659b802b22SGreg Roach    public function testSurnames(): void
66c1010edaSGreg Roach    {
67a32e6421SGreg Roach        $this->assertTrue($this->surname_tradition->hasSurnames());
68c1ec7145SGreg Roach    }
69c1ec7145SGreg Roach
70c1ec7145SGreg Roach    /**
71323788f4SGreg Roach     * Test new son names
7217d74f3aSGreg Roach     *
7315d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
7415d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
7552348eb8SGreg Roach     *
7652348eb8SGreg Roach     * @return void
77323788f4SGreg Roach     */
789b802b22SGreg Roach    public function testNewSonNames(): void
79c1010edaSGreg Roach    {
80323788f4SGreg Roach        $this->assertSame(
81c1010edaSGreg Roach            [
82c1010edaSGreg Roach                'NAME' => '/White/',
83c1010edaSGreg Roach                'SURN' => 'White',
84c1010edaSGreg Roach            ],
85323788f4SGreg Roach            $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'M')
86323788f4SGreg Roach        );
87323788f4SGreg Roach    }
88323788f4SGreg Roach
89323788f4SGreg Roach    /**
90323788f4SGreg Roach     * Test new daughter names
9117d74f3aSGreg Roach     *
9215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
9315d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
9452348eb8SGreg Roach     *
9552348eb8SGreg Roach     * @return void
96323788f4SGreg Roach     */
979b802b22SGreg Roach    public function testNewDaughterNames(): void
98c1010edaSGreg Roach    {
99323788f4SGreg Roach        $this->assertSame(
100c1010edaSGreg Roach            [
101c1010edaSGreg Roach                'NAME' => '/White/',
102c1010edaSGreg Roach                'SURN' => 'White',
103c1010edaSGreg Roach            ],
104323788f4SGreg Roach            $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'F')
105323788f4SGreg Roach        );
106323788f4SGreg Roach    }
107323788f4SGreg Roach
108323788f4SGreg Roach    /**
109323788f4SGreg Roach     * Test new daughter names
11017d74f3aSGreg Roach     *
11115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
11215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
11352348eb8SGreg Roach     *
11452348eb8SGreg Roach     * @return void
115323788f4SGreg Roach     */
1169b802b22SGreg Roach    public function testNewDaughterNamesInflected(): void
117c1010edaSGreg Roach    {
118323788f4SGreg Roach        $this->assertSame(
119c1010edaSGreg Roach            [
120c1010edaSGreg Roach                'NAME' => '/Whitecka/',
121c1010edaSGreg Roach                'SURN' => 'Whitecki',
122c1010edaSGreg Roach            ],
123323788f4SGreg Roach            $this->surname_tradition->newChildNames('John /Whitecki/', 'Mary /Black/', 'F')
124323788f4SGreg Roach        );
125323788f4SGreg Roach        $this->assertSame(
126c1010edaSGreg Roach            [
127c1010edaSGreg Roach                'NAME' => '/Whitedzka/',
128c1010edaSGreg Roach                'SURN' => 'Whitedzki',
129c1010edaSGreg Roach            ],
130323788f4SGreg Roach            $this->surname_tradition->newChildNames('John /Whitedzki/', 'Mary /Black/', 'F')
131323788f4SGreg Roach        );
132323788f4SGreg Roach        $this->assertSame(
133c1010edaSGreg Roach            [
134c1010edaSGreg Roach                'NAME' => '/Whiteska/',
135c1010edaSGreg Roach                'SURN' => 'Whiteski',
136c1010edaSGreg Roach            ],
137323788f4SGreg Roach            $this->surname_tradition->newChildNames('John /Whiteski/', 'Mary /Black/', 'F')
138323788f4SGreg Roach        );
139323788f4SGreg Roach        $this->assertSame(
140c1010edaSGreg Roach            [
141c1010edaSGreg Roach                'NAME' => '/Whiteżka/',
142c1010edaSGreg Roach                'SURN' => 'Whiteżki',
143c1010edaSGreg Roach            ],
144323788f4SGreg Roach            $this->surname_tradition->newChildNames('John /Whiteżki/', 'Mary /Black/', 'F')
145323788f4SGreg Roach        );
146323788f4SGreg Roach    }
147323788f4SGreg Roach
148323788f4SGreg Roach    /**
149323788f4SGreg Roach     * Test new child names
15017d74f3aSGreg Roach     *
15115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
15215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
15352348eb8SGreg Roach     *
15452348eb8SGreg Roach     * @return void
155323788f4SGreg Roach     */
1569b802b22SGreg Roach    public function testNewChildNames(): void
157c1010edaSGreg Roach    {
158323788f4SGreg Roach        $this->assertSame(
159c1010edaSGreg Roach            [
160c1010edaSGreg Roach                'NAME' => '/White/',
161c1010edaSGreg Roach                'SURN' => 'White',
162c1010edaSGreg Roach            ],
163323788f4SGreg Roach            $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'U')
164323788f4SGreg Roach        );
165323788f4SGreg Roach    }
166323788f4SGreg Roach
167323788f4SGreg Roach    /**
1681677a03aSGreg Roach     * Test new child names
16917d74f3aSGreg Roach     *
17015d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
17115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
17252348eb8SGreg Roach     *
17352348eb8SGreg Roach     * @return void
1741677a03aSGreg Roach     */
1759b802b22SGreg Roach    public function testNewChildNamesWithNoParentsNames(): void
176c1010edaSGreg Roach    {
1771677a03aSGreg Roach        $this->assertSame(
17813abd6f3SGreg Roach            ['NAME' => '//'],
1791677a03aSGreg Roach            $this->surname_tradition->newChildNames('', '', 'U')
1801677a03aSGreg Roach        );
1811677a03aSGreg Roach    }
1821677a03aSGreg Roach
1831677a03aSGreg Roach    /**
184323788f4SGreg Roach     * Test new father names
18517d74f3aSGreg Roach     *
18615d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
18715d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
18852348eb8SGreg Roach     *
18952348eb8SGreg Roach     * @return void
190323788f4SGreg Roach     */
1919b802b22SGreg Roach    public function testNewFatherNames(): void
192c1010edaSGreg Roach    {
193323788f4SGreg Roach        $this->assertSame(
194c1010edaSGreg Roach            [
195c1010edaSGreg Roach                'NAME' => '/White/',
196c1010edaSGreg Roach                'SURN' => 'White',
197c1010edaSGreg Roach            ],
198323788f4SGreg Roach            $this->surname_tradition->newParentNames('John /White/', 'M')
199323788f4SGreg Roach        );
200323788f4SGreg Roach    }
201323788f4SGreg Roach
202323788f4SGreg Roach    /**
203323788f4SGreg Roach     * Test new father names
20417d74f3aSGreg Roach     *
20515d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
20615d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
20752348eb8SGreg Roach     *
20852348eb8SGreg Roach     * @return void
209323788f4SGreg Roach     */
2109b802b22SGreg Roach    public function testNewFatherNamesInflected(): void
211c1010edaSGreg Roach    {
212323788f4SGreg Roach        $this->assertSame(
213c1010edaSGreg Roach            [
214c1010edaSGreg Roach                'NAME' => '/Whitecki/',
215c1010edaSGreg Roach                'SURN' => 'Whitecki',
216c1010edaSGreg Roach            ],
217323788f4SGreg Roach            $this->surname_tradition->newParentNames('Mary /Whitecka/', 'M')
218323788f4SGreg Roach        );
219323788f4SGreg Roach        $this->assertSame(
220c1010edaSGreg Roach            [
221c1010edaSGreg Roach                'NAME' => '/Whitedzki/',
222c1010edaSGreg Roach                'SURN' => 'Whitedzki',
223c1010edaSGreg Roach            ],
224323788f4SGreg Roach            $this->surname_tradition->newParentNames('Mary /Whitedzka/', 'M')
225323788f4SGreg Roach        );
226323788f4SGreg Roach        $this->assertSame(
227c1010edaSGreg Roach            [
228c1010edaSGreg Roach                'NAME' => '/Whiteski/',
229c1010edaSGreg Roach                'SURN' => 'Whiteski',
230c1010edaSGreg Roach            ],
231323788f4SGreg Roach            $this->surname_tradition->newParentNames('Mary /Whiteska/', 'M')
232323788f4SGreg Roach        );
233323788f4SGreg Roach        $this->assertSame(
234c1010edaSGreg Roach            [
235c1010edaSGreg Roach                'NAME' => '/Whiteżki/',
236c1010edaSGreg Roach                'SURN' => 'Whiteżki',
237c1010edaSGreg Roach            ],
238323788f4SGreg Roach            $this->surname_tradition->newParentNames('Mary /Whiteżka/', 'M')
239323788f4SGreg Roach        );
240323788f4SGreg Roach    }
241323788f4SGreg Roach
242323788f4SGreg Roach    /**
243323788f4SGreg Roach     * Test new mother names
24417d74f3aSGreg Roach     *
24515d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
24615d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
24752348eb8SGreg Roach     *
24852348eb8SGreg Roach     * @return void
249323788f4SGreg Roach     */
2509b802b22SGreg Roach    public function testNewMotherNames(): void
251c1010edaSGreg Roach    {
252323788f4SGreg Roach        $this->assertSame(
25313abd6f3SGreg Roach            ['NAME' => '//'],
254323788f4SGreg Roach            $this->surname_tradition->newParentNames('John /White/', 'F')
255323788f4SGreg Roach        );
256323788f4SGreg Roach    }
257323788f4SGreg Roach
258323788f4SGreg Roach    /**
259323788f4SGreg Roach     * Test new parent names
26017d74f3aSGreg Roach     *
26115d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
26215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
26352348eb8SGreg Roach     *
26452348eb8SGreg Roach     * @return void
265323788f4SGreg Roach     */
2669b802b22SGreg Roach    public function testNewParentNames(): void
267c1010edaSGreg Roach    {
268323788f4SGreg Roach        $this->assertSame(
26913abd6f3SGreg Roach            ['NAME' => '//'],
270323788f4SGreg Roach            $this->surname_tradition->newParentNames('John /White/', 'U')
271323788f4SGreg Roach        );
272323788f4SGreg Roach    }
273323788f4SGreg Roach
274323788f4SGreg Roach    /**
275323788f4SGreg Roach     * Test new husband names
27617d74f3aSGreg Roach     *
27715d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
27815d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
27952348eb8SGreg Roach     *
28052348eb8SGreg Roach     * @return void
281323788f4SGreg Roach     */
2829b802b22SGreg Roach    public function testNewHusbandNames(): void
283c1010edaSGreg Roach    {
284323788f4SGreg Roach        $this->assertSame(
28513abd6f3SGreg Roach            ['NAME' => '//'],
286323788f4SGreg Roach            $this->surname_tradition->newSpouseNames('Mary /Black/', 'M')
287323788f4SGreg Roach        );
288323788f4SGreg Roach    }
289323788f4SGreg Roach
290323788f4SGreg Roach    /**
291323788f4SGreg Roach     * Test new wife names
29217d74f3aSGreg Roach     *
29315d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
29415d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
29552348eb8SGreg Roach     *
29652348eb8SGreg Roach     * @return void
297323788f4SGreg Roach     */
2989b802b22SGreg Roach    public function testNewWifeNames(): void
299c1010edaSGreg Roach    {
300323788f4SGreg Roach        $this->assertSame(
301c1010edaSGreg Roach            [
302c1010edaSGreg Roach                'NAME'   => '//',
303c1010edaSGreg Roach                '_MARNM' => '/White/',
304c1010edaSGreg Roach            ],
305323788f4SGreg Roach            $this->surname_tradition->newSpouseNames('John /White/', 'F')
306323788f4SGreg Roach        );
307323788f4SGreg Roach    }
308323788f4SGreg Roach
309323788f4SGreg Roach    /**
310323788f4SGreg Roach     * Test new spouse names
31117d74f3aSGreg Roach     *
31215d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition
31315d603e7SGreg Roach     * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition
31452348eb8SGreg Roach     *
31552348eb8SGreg Roach     * @return void
316323788f4SGreg Roach     */
3179b802b22SGreg Roach    public function testNewSpouseNames(): void
318c1010edaSGreg Roach    {
319323788f4SGreg Roach        $this->assertSame(
32013abd6f3SGreg Roach            ['NAME' => '//'],
321323788f4SGreg Roach            $this->surname_tradition->newSpouseNames('Chris /Green/', 'U')
322323788f4SGreg Roach        );
323323788f4SGreg Roach    }
324323788f4SGreg Roach}
325