xref: /webtrees/tests/app/Census/CensusColumnBornForeignPartsTest.php (revision 3976b4703df669696105ed6b024b96d433c8fbdb)
1<?php
2
3/**
4 * webtrees: online genealogy
5 * Copyright (C) 2019 webtrees development team
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17declare(strict_types=1);
18
19namespace Fisharebest\Webtrees\Census;
20
21use Fisharebest\Webtrees\Individual;
22use Fisharebest\Webtrees\Place;
23use Illuminate\Support\Collection;
24
25/**
26 * Test harness for the class CensusColumnBornForeignParts
27 */
28class CensusColumnBornForeignPartsTest extends \Fisharebest\Webtrees\TestCase
29{
30    /**
31     * Get place mock.
32     *
33     * @param string $place Gedcom Place
34     *
35     * @return Place
36     */
37    private function getPlaceMock($place): Place
38    {
39        $placeParts = explode(', ', $place);
40
41        $placeMock = $this->createMock(Place::class);
42        $placeMock->method('gedcomName')->willReturn($place);
43        $placeMock->method('lastParts')->willReturn((new Collection($placeParts))->slice(-1));
44
45        return $placeMock;
46    }
47
48    /**
49     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
50     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
51     *
52     * @return void
53     */
54    public function testBornEnglandCensusEngland(): void
55    {
56        $individual = $this->createMock(Individual::class);
57        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England'));
58
59        $census = $this->createMock(CensusInterface::class);
60        $census->method('censusPlace')->willReturn('England');
61
62        $column = new CensusColumnBornForeignParts($census, '', '');
63
64        $this->assertSame('', $column->generate($individual, $individual));
65    }
66
67    /**
68     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
69     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
70     *
71     * @return void
72     */
73    public function testBornWalesCensusEngland(): void
74    {
75        $individual = $this->createMock(Individual::class);
76        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales'));
77
78        $census = $this->createMock(CensusInterface::class);
79        $census->method('censusPlace')->willReturn('England');
80
81        $column = new CensusColumnBornForeignParts($census, '', '');
82
83        $this->assertSame('', $column->generate($individual, $individual));
84    }
85
86    /**
87     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
88     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
89     *
90     * @return void
91     */
92    public function testBornScotlandCensusEngland(): void
93    {
94        $individual = $this->createMock(Individual::class);
95        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland'));
96
97        $census = $this->createMock(CensusInterface::class);
98        $census->method('censusPlace')->willReturn('England');
99
100        $column = new CensusColumnBornForeignParts($census, '', '');
101
102        $this->assertSame('S', $column->generate($individual, $individual));
103    }
104
105    /**
106     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
107     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
108     *
109     * @return void
110     */
111    public function testBornIrelandCensusEngland(): void
112    {
113        $individual = $this->createMock(Individual::class);
114        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland'));
115
116        $census = $this->createMock(CensusInterface::class);
117        $census->method('censusPlace')->willReturn('England');
118
119        $column = new CensusColumnBornForeignParts($census, '', '');
120
121        $this->assertSame('I', $column->generate($individual, $individual));
122    }
123
124    /**
125     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
126     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
127     *
128     * @return void
129     */
130    public function testBornForeignCensusEngland(): void
131    {
132        $individual = $this->createMock(Individual::class);
133        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia'));
134
135        $census = $this->createMock(CensusInterface::class);
136        $census->method('censusPlace')->willReturn('England');
137
138        $column = new CensusColumnBornForeignParts($census, '', '');
139
140        $this->assertSame('F', $column->generate($individual, $individual));
141    }
142
143    /**
144     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
145     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
146     *
147     * @return void
148     */
149    public function testBornEnglandCensusIreland(): void
150    {
151        $individual = $this->createMock(Individual::class);
152        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England'));
153
154        $census = $this->createMock(CensusInterface::class);
155        $census->method('censusPlace')->willReturn('Ireland');
156
157        $column = new CensusColumnBornForeignParts($census, '', '');
158
159        $this->assertSame('E', $column->generate($individual, $individual));
160    }
161
162    /**
163     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
164     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
165     *
166     * @return void
167     */
168    public function testBornWalesCensusIreland(): void
169    {
170        $individual = $this->createMock(Individual::class);
171        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales'));
172
173        $census = $this->createMock(CensusInterface::class);
174        $census->method('censusPlace')->willReturn('Ireland');
175
176        $column = new CensusColumnBornForeignParts($census, '', '');
177
178        $this->assertSame('E', $column->generate($individual, $individual));
179    }
180
181    /**
182     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
183     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
184     *
185     * @return void
186     */
187    public function testBornScotlandCensusIreland(): void
188    {
189        $individual = $this->createMock(Individual::class);
190        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland'));
191
192        $census = $this->createMock(CensusInterface::class);
193        $census->method('censusPlace')->willReturn('Ireland');
194
195        $column = new CensusColumnBornForeignParts($census, '', '');
196
197        $this->assertSame('S', $column->generate($individual, $individual));
198    }
199
200    /**
201     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
202     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
203     *
204     * @return void
205     */
206    public function testBornIrelandCensusIreland(): void
207    {
208        $individual = $this->createMock(Individual::class);
209        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland'));
210
211        $census = $this->createMock(CensusInterface::class);
212        $census->method('censusPlace')->willReturn('Ireland');
213
214        $column = new CensusColumnBornForeignParts($census, '', '');
215
216        $this->assertSame('', $column->generate($individual, $individual));
217    }
218
219    /**
220     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
221     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
222     *
223     * @return void
224     */
225    public function testBornForeignCensusIreland(): void
226    {
227        $individual = $this->createMock(Individual::class);
228        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia'));
229
230        $census = $this->createMock(CensusInterface::class);
231        $census->method('censusPlace')->willReturn('Ireland');
232
233        $column = new CensusColumnBornForeignParts($census, '', '');
234
235        $this->assertSame('F', $column->generate($individual, $individual));
236    }
237
238    /**
239     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
240     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
241     *
242     * @return void
243     */
244    public function testBornEnglandCensusScotland(): void
245    {
246        $individual = $this->createMock(Individual::class);
247        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England'));
248
249        $census = $this->createMock(CensusInterface::class);
250        $census->method('censusPlace')->willReturn('Scotland');
251
252        $column = new CensusColumnBornForeignParts($census, '', '');
253
254        $this->assertSame('E', $column->generate($individual, $individual));
255    }
256
257    /**
258     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
259     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
260     *
261     * @return void
262     */
263    public function testBornWalesCensusScotland(): void
264    {
265        $individual = $this->createMock(Individual::class);
266        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales'));
267
268        $census = $this->createMock(CensusInterface::class);
269        $census->method('censusPlace')->willReturn('Scotland');
270
271        $column = new CensusColumnBornForeignParts($census, '', '');
272
273        $this->assertSame('E', $column->generate($individual, $individual));
274    }
275
276    /**
277     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
278     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
279     *
280     * @return void
281     */
282    public function testBornScotlandCensusScotland(): void
283    {
284        $individual = $this->createMock(Individual::class);
285        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland'));
286
287        $census = $this->createMock(CensusInterface::class);
288        $census->method('censusPlace')->willReturn('Scotland');
289
290        $column = new CensusColumnBornForeignParts($census, '', '');
291
292        $this->assertSame('', $column->generate($individual, $individual));
293    }
294
295    /**
296     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
297     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
298     *
299     * @return void
300     */
301    public function testBornIrelandCensusScotland(): void
302    {
303        $individual = $this->createMock(Individual::class);
304        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland'));
305
306        $census = $this->createMock(CensusInterface::class);
307        $census->method('censusPlace')->willReturn('Scotland');
308
309        $column = new CensusColumnBornForeignParts($census, '', '');
310
311        $this->assertSame('I', $column->generate($individual, $individual));
312    }
313
314    /**
315     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
316     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
317     *
318     * @return void
319     */
320    public function testBornForeignCensusScotland(): void
321    {
322        $individual = $this->createMock(Individual::class);
323        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia'));
324
325        $census = $this->createMock(CensusInterface::class);
326        $census->method('censusPlace')->willReturn('Scotland');
327
328        $column = new CensusColumnBornForeignParts($census, '', '');
329
330        $this->assertSame('F', $column->generate($individual, $individual));
331    }
332
333    /**
334     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
335     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
336     *
337     * @return void
338     */
339    public function testBornEnglandCensusWales(): void
340    {
341        $individual = $this->createMock(Individual::class);
342        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England'));
343
344        $census = $this->createMock(CensusInterface::class);
345        $census->method('censusPlace')->willReturn('Wales');
346
347        $column = new CensusColumnBornForeignParts($census, '', '');
348
349        $this->assertSame('', $column->generate($individual, $individual));
350    }
351
352    /**
353     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
354     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
355     *
356     * @return void
357     */
358    public function testBornWalesCensusWales(): void
359    {
360        $individual = $this->createMock(Individual::class);
361        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales'));
362
363        $census = $this->createMock(CensusInterface::class);
364        $census->method('censusPlace')->willReturn('Wales');
365
366        $column = new CensusColumnBornForeignParts($census, '', '');
367
368        $this->assertSame('', $column->generate($individual, $individual));
369    }
370
371    /**
372     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
373     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
374     *
375     * @return void
376     */
377    public function testBornScotlandCensusWales(): void
378    {
379        $individual = $this->createMock(Individual::class);
380        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland'));
381
382        $census = $this->createMock(CensusInterface::class);
383        $census->method('censusPlace')->willReturn('Wales');
384
385        $column = new CensusColumnBornForeignParts($census, '', '');
386
387        $this->assertSame('S', $column->generate($individual, $individual));
388    }
389
390    /**
391     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
392     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
393     *
394     * @return void
395     */
396    public function testBornIrelandCensusWales(): void
397    {
398        $individual = $this->createMock(Individual::class);
399        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland'));
400
401        $census = $this->createMock(CensusInterface::class);
402        $census->method('censusPlace')->willReturn('Wales');
403
404        $column = new CensusColumnBornForeignParts($census, '', '');
405
406        $this->assertSame('I', $column->generate($individual, $individual));
407    }
408
409    /**
410     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
411     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
412     *
413     * @return void
414     */
415    public function testBornForeignCensusWales(): void
416    {
417        $individual = $this->createMock(Individual::class);
418        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia'));
419
420        $census = $this->createMock(CensusInterface::class);
421        $census->method('censusPlace')->willReturn('Wales');
422
423        $column = new CensusColumnBornForeignParts($census, '', '');
424
425        $this->assertSame('F', $column->generate($individual, $individual));
426    }
427
428    /**
429     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
430     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
431     *
432     * @return void
433     */
434    public function testBornNowhereCensusEngland(): void
435    {
436        $individual = $this->createMock(Individual::class);
437        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock(''));
438
439        $census = $this->createMock(CensusInterface::class);
440        $census->method('censusPlace')->willReturn('England');
441
442        $column = new CensusColumnBornForeignParts($census, '', '');
443
444        $this->assertSame('', $column->generate($individual, $individual));
445    }
446
447    /**
448     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
449     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
450     *
451     * @return void
452     */
453    public function testBornNowhereCensusWales(): void
454    {
455        $individual = $this->createMock(Individual::class);
456        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock(''));
457
458        $census = $this->createMock(CensusInterface::class);
459        $census->method('censusPlace')->willReturn('Wales');
460
461        $column = new CensusColumnBornForeignParts($census, '', '');
462
463        $this->assertSame('', $column->generate($individual, $individual));
464    }
465
466    /**
467     * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts
468     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
469     *
470     * @return void
471     */
472    public function testBornNowhereCensusScotland(): void
473    {
474        $individual = $this->createMock(Individual::class);
475        $individual->method('getBirthPlace')->willReturn($this->getPlaceMock(''));
476
477        $census = $this->createMock(CensusInterface::class);
478        $census->method('censusPlace')->willReturn('Scotland');
479
480        $column = new CensusColumnBornForeignParts($census, '', '');
481
482        $this->assertSame('', $column->generate($individual, $individual));
483    }
484}
485