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