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