xref: /webtrees/tests/app/Census/CensusColumnBirthPlaceTest.php (revision c1010eda29c0909ed4d5d463f32d32bfefdd4dfe)
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 CensusColumnBirthPlace
23 */
24class CensusColumnBirthPlaceTest 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)
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\CensusColumnBirthPlace
51     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
52     */
53    public function testPlaceCountry()
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('England');
60
61        $column = new CensusColumnBirthPlace($census, '', '');
62
63        $this->assertSame('Westminster, London', $column->generate($individual));
64    }
65
66    /**
67     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlace
68     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
69     */
70    public function testPlaceAndCountry()
71    {
72        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
73        $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('England'));
74
75        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
76        $census->shouldReceive('censusPlace')->andReturn('England');
77
78        $column = new CensusColumnBirthPlace($census, '', '');
79
80        $this->assertSame('', $column->generate($individual));
81    }
82
83    /**
84     * @covers \Fisharebest\Webtrees\Census\CensusColumnBirthPlace
85     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
86     */
87    public function testDifferentCountry()
88    {
89        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
90        $individual->shouldReceive('getBirthPlace')->andReturn($this->getPlaceMock('Paris, France'));
91
92        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
93        $census->shouldReceive('censusPlace')->andReturn('England');
94
95        $column = new CensusColumnBirthPlace($census, '', '');
96
97        $this->assertSame('Paris, France', $column->generate($individual));
98    }
99}
100