xref: /webtrees/tests/app/Census/CensusColumnMotherForeignTest.php (revision 8f53f488f13e53e44dc48778e8f51ec9f91352dd)
1<?php
2
3/**
4 * webtrees: online genealogy
5 * Copyright (C) 2018 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 */
17namespace Fisharebest\Webtrees\Census;
18
19use Mockery;
20
21/**
22 * Test harness for the class CensusColumnMotherForeign
23 */
24class CensusColumnMotherForeignTest extends \PHPUnit\Framework\TestCase
25{
26    /**
27     * Delete mock objects
28     */
29    public function tearDown()
30    {
31        Mockery::close();
32    }
33
34    /**
35     * Get place mock.
36     *
37     * @param string $place Gedcom Place
38     *
39     * @return \Fisharebest\Webtrees\Place
40     */
41    private function getPlaceMock($place): \Fisharebest\Webtrees\Place
42    {
43        $placeMock = Mockery::mock('\Fisharebest\Webtrees\Place');
44        $placeMock->shouldReceive('getGedcomName')->andReturn($place);
45
46        return $placeMock;
47    }
48
49    /**
50     * @covers \Fisharebest\Webtrees\Census\CensusColumnMotherForeign
51     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
52     */
53    public function testSameCountry()
54    {
55        $mother = Mockery::mock('Fisharebest\Webtrees\Individual');
56        $mother->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('London, England'));
57
58        $family = Mockery::mock('Fisharebest\Webtrees\Family');
59        $family->shouldReceive('getWife')->andReturn($mother);
60
61        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
62        $individual->shouldReceive('getPrimaryChildFamily')->andReturn($family);
63
64        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
65        $census->shouldReceive('censusPlace')->andReturn('England');
66
67        $column = new CensusColumnMotherForeign($census, '', '');
68
69        $this->assertSame('', $column->generate($individual, $individual));
70    }
71
72    /**
73     * @covers \Fisharebest\Webtrees\Census\CensusColumnMotherForeign
74     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
75     */
76    public function testDifferentCountry()
77    {
78        $mother = Mockery::mock('Fisharebest\Webtrees\Individual');
79        $mother->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('London, England'));
80
81        $family = Mockery::mock('Fisharebest\Webtrees\Family');
82        $family->shouldReceive('getWife')->andReturn($mother);
83
84        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
85        $individual->shouldReceive('getPrimaryChildFamily')->andReturn($family);
86
87        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
88        $census->shouldReceive('censusPlace')->andReturn('Ireland');
89
90        $column = new CensusColumnMotherForeign($census, '', '');
91
92        $this->assertSame('Y', $column->generate($individual, $individual));
93    }
94
95    /**
96     * @covers \Fisharebest\Webtrees\Census\CensusColumnMotherForeign
97     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
98     */
99    public function testPlaceNoParent()
100    {
101        $family = Mockery::mock('Fisharebest\Webtrees\Family');
102        $family->shouldReceive('getWife')->andReturn(null);
103
104        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
105        $individual->shouldReceive('getPrimaryChildFamily')->andReturn($family);
106
107        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
108        $census->shouldReceive('censusPlace')->andReturn('England');
109
110        $column = new CensusColumnMotherForeign($census, '', '');
111
112        $this->assertSame('', $column->generate($individual, $individual));
113    }
114
115    /**
116     * @covers \Fisharebest\Webtrees\Census\CensusColumnMotherForeign
117     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
118     */
119    public function testPlaceNoParentFamily()
120    {
121        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
122        $individual->shouldReceive('getPrimaryChildFamily')->andReturn(null);
123
124        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
125        $census->shouldReceive('censusPlace')->andReturn('England');
126
127        $column = new CensusColumnMotherForeign($census, '', '');
128
129        $this->assertSame('', $column->generate($individual, $individual));
130    }
131}
132