xref: /webtrees/tests/app/Census/CensusColumnBirthPlaceSimpleTest.php (revision 873953697c930fadbf3243d2b8c0029fd684da0e)
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 CensusColumnBirthPlaceSimple
23 */
24class CensusColumnBirthPlaceSimpleTest 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\CensusColumnBirthPlaceSimple
51     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
52     */
53    public function testForeignCountry()
54    {
55        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
56        $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Westminster, London, England'));
57
58        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
59        $census->shouldReceive('censusPlace')->andReturn('United States');
60
61        $column = new CensusColumnBirthPlaceSimple($census, '', '');
62
63        $this->assertSame('England', $column->generate($individual, $individual));
64    }
65
66    /**
67     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple
68     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
69     */
70    public function testJustCountry()
71    {
72        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
73        $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('United States'));
74
75        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
76        $census->shouldReceive('censusPlace')->andReturn('United States');
77
78        $column = new CensusColumnBirthPlaceSimple($census, '', '');
79
80        $this->assertSame('', $column->generate($individual, $individual));
81    }
82
83    /**
84     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple
85     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
86     */
87    public function testKnownState()
88    {
89        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
90        $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Maryland, United States'));
91
92        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
93        $census->shouldReceive('censusPlace')->andReturn('United States');
94
95        $column = new CensusColumnBirthPlaceSimple($census, '', '');
96
97        $this->assertSame('Maryland', $column->generate($individual, $individual));
98    }
99
100    /**
101     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlaceSimple
102     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
103     */
104    public function testKnownStateAndTown()
105    {
106        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
107        $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Miami, Florida, United States'));
108
109        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
110        $census->shouldReceive('censusPlace')->andReturn('United States');
111
112        $column = new CensusColumnBirthPlaceSimple($census, '', '');
113
114        $this->assertSame('Florida', $column->generate($individual, $individual));
115    }
116}
117